17891 -11286 330451 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555”方法有多种,现举两个比较简单实用的。方法一: file/import data/next/finish>> whosName Size Bytes Classdata 5x4 160 double arraytextdata 4x1 300 cell arrayGrand total is 54 elements using 460 bytes>> datadata = 1 11 111 11112 22 222 22223 33 333 33334 44 444 4444[a1,a2,a3,a4]=textread('test1txt','%s%s%s%s','headerlines',4)说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。这里%s的个数和[a1,a2,a3,a4]对应。>> [a1,a2,a3,a4]=textread('test1txt','%s%s%s%s','headerlines',4)a1 = '1''2''3''4''5'a2 = '11''22''33''44''55'a3 = '111''222''333''444''555'a4 = '1111''2222''3333''4444''5555'因以字符串的形式读入,所以有''。————————————————————————————————三、中文 数据英文混乱如testtxt你好vibhiteducn4 44 444 44445 55 555 5555说明:这种内容格式的文件用上面的方法是不行的。以下是由chinamaker编写的一种方法:fidin=fopen('testtxt'); % 打开test2txt文件 fidout=fopen('mkmatlabtxt','w'); % 创建MKMATLABtxt文件while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if double(tline(1))>=48&&double(tline(1))> MKMK = 1 11 111 11112 22 222 22223 33 333 3333
设置当前文件夹为数据所在地,使用dir命令获取目录下文件名称,使用字符串命令创建命令的字符串形式(如‘load 0_1txt’),使用eval命令运行命令的字符串形式。要点是生成能导入数据命令的字符串形式
我这里有一个读取的实例你可以看一下
%%
格式化文本的读 *** 作
%只读形式打开txt文件
file_t
=
fopen('mytxttxt','r');
%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行
A
=
fscanf(file_t,'%d');
%关闭文件
fclose(file_t);
%%
使用textscan读取多列数据
file_t
=
fopen('mytxttxt','r');
%将原来的两列数据以数组原包(cell)的形式读取,cell共有两个元素
A
=
textscan(file_t,'%d
%d');
%C和上面A一样,D返回位置信息
[C,D]
=
textscan(file_t,'%d
%d');
fclose(file_t);
A{1}
%原包数据的第一个元素对应第一列
A{2}
C
D
%%
textread函数读取,现在不常用
%这种形式将每一列分别给A,B
[A,B]
=
textread('mytxttxt','%d
%d');
A
B
%这种形式将txt文件排成一列赋给C
C
=
textread('mytxttxt','%d');
C
%%
忽略标题
file_t
=
fopen('headlinetxt','r');
%忽略掉第一行的标题信息
A
=
textscan(file_t,'%d
%d','HeaderLines',1);
A
%%
使用textscan扫描字符串中的数据
clc
str_1
=
'The
number
is
1
2
3
4
5';
%首先使用textscan获取第一个前14个字符
[str1,position1]
=
textscan(str_1,'%14c',1);
str1{:};
%The
number
is
position1;
%14
%获取字符串的长度
[temp1,temp2]
=
size(str_1);
%然后读取后面的数字字符串
str_2
=
textscan(str_1(position1+1:temp2),'%9c',1);
%将字符串转化为数值
num
=
str2num(str_2{1})
%%
格式化文本的写 *** 作
%使用fprintf向文件中写入数据
%写形式打开文件,存在就打开,不存在新创建一个文件开始写
file_1
=
fopen('text_wtxt','w');
%以数字形式写入数据
fprintf(file_1,'%d',1225);
%关闭文件,返回0表示关闭成功
fclose(file_1);
%%
每写入一次换行或插入想要的字符
file_1
=
fopen('text_wtxt','w');
%\r回车符
\n换行符
这里必须回车换行连用
fprintf(file_1,'%d\r\n',[32;34]);
%每写入一个数字,后加一个空格,多列按列输出
temp
=
randint(4,2);
fprintf(file_1,'%d
',temp);
fclose(file_1);
%%
fprintf在命令空间输出
str_1
=
'Hello!
World!';
%这里fid
=
1;这时输出换行只需\n就行,%c为输出单个字符,%s为输出字符串
fprintf(1,'%c\n',str_1);
%%
扫描字符串2
clear
clc
str
=
'1985
112
-1053';
%将
替换为0
A
=
find(str
==
32);
str(A)
=
48;
%下面这这一句相当于+198501120-1053
%不是你给的+19850112-01053
str2num(str)
以上就是关于Matlab中读取txt文件的几种方法全部的内容,包括:Matlab中读取txt文件的几种方法、怎样用matlab依次读取多个txt文件、如何在matlab中读取TXT数据文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)