『壹』 Matlab读取文本文档txt文件
对于 行数和列数整齐 ,但是其中既有数据又有文本的文本文档读取,可以使用以下几个函数。
以filename.txt为例,其中有5行4列,其中第一列为字符,剩下几列为数据。
对于 行列不整齐 的txt文件,可以采用逐行读取的方法。
『贰』 如何在matlab中读取TXT数据文件
我这里有一个读取的实例你可以看一下
%%
格式化文本的读操作
%只读形式打开txt文件
file_t
=
fopen('mytxt.txt','r');
%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行
A
=
fscanf(file_t,'%d');
%关闭文件
fclose(file_t);
%%
使用textscan读取多列数据
file_t
=
fopen('mytxt.txt','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('mytxt.txt','%d
%d');
A
B
%这种形式将txt文件排成一列赋给C
C
=
textread('mytxt.txt','%d');
C
%%
忽略标题
file_t
=
fopen('headline.txt','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_w.txt','w');
%以数字形式写入数据
fprintf(file_1,'%d',1225);
%关闭文件,返回0表示关闭成功
fclose(file_1);
%%
每写入一次换行或插入想要的字符
file_1
=
fopen('text_w.txt','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
-10.53';
%将
替换为0
A
=
find(str
==
32);
str(A)
=
48;
%下面这这一句相当于+198501120-10.53
%不是你给的+19850112-010.53
str2num(str)
『叁』 如何使用MATLAB读取txt文件中的数据并绘图
利用MATLAB中的 load 读取函数与 plot 绘图函数可以实现所需的功能。
代码如下(假设txt的文件名为 data.txt ):
load data.txt
plot(1:length(data),data,'*-')
由于没有横坐标的值,横坐标利用 1:length(data) 代替。
如果data.txt 文件不在MATLAB的默认路径里面,那么文件还应包含此文件的路径。例如data.txt文件的路径为 C:practice ,那么 load 函数应该改为
loadC:practicedata.txt
实现二维绘图功能可以利用最简单的绘图函数 plot 。例如绘制 X 与 Y 的图像(X,Y均为1*n或者n*1的矩阵),输入命令 plot(X,Y) 即可快速绘图。
load 的其他用法:
1、 load(filename)
从 filename 加载数据。如果 filename 是 MAT 文件,load(filename) 会将 MAT 文件中的变量加载到 MATLAB 工作区;如果 filename 是 ASCII 文件,load(filename) 会创建一个包含该文件数据的双精度数组。
2、 load(filename,variables)
加载 MAT 文件 filename 中的指定变量variables。
3、 load(filename,'-ascii')
将 filename 视为 ASCII 文件,而不管文件扩展名如何。
4、 load(filename,'-mat')
将 filename 视为 MAT 文件,而不管文件扩展名如何。
5、 load(filename,'-mat',variables)
加载 filename 中的指定变量。
6、 S = load(___)
使用前面语法组中的任意输入参数将数据加载到 S 中。如果 filename 是 MAT 文件,则 S 是结构数组;如果 filename 是 ASCII 文件,则 S 是包含该文件数据的双精度数组。
『肆』 想用matlab读取txt文件,怎么实现
输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。
1、文件的打开与关闭
1)打开文件
在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为:
fid=fopen(文件名,‘打开方式’)
说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:
‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
2)关闭文件
文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为:
sta=fclose(fid)
说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。
2、二进制文件的读写操作
1)写二进制文件
fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:
COUNT=fwrite(fid,A,precision)
说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。
例6.8 将一个二进制矩阵存入磁盘文件中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid=fopen('d:\test.bin','wb') %以二进制数据写入方式打开文件
fid =
3 %其值大于0,表示打开成功
>> fwrite(fid,a,'double')
ans =
9 %表示写入了9个数据
>> fclose(fid)
ans =
0 %表示关闭成功
2)读二进制文件
fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:
[A,COUNT]=fread(fid,size,precision)
说明:其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用则它的值可以是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。
3、文本文件的读写操作
1)读文本文件
fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:
[A,COUNT]=fscanf(fid,format,size)
说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size为可选项,决定矩阵A中数据的排列形式,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。
2)写文本文件
fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:
fprintf(fid,format,A)
说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
例6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。
>> a='string';
>> fid=fopen('d:\char1.txt','w');
>> fprintf(fid,'%s',a);
>> fclose(fid);
>> fid1=fopen('d:\char1.txt','rt');
>> fid1=fopen('d:\char1.txt','rt');
>> b=fscanf(fid1,'%s')
b =
string
matlab读txt文件
fid=fopen('fx.txt','r');
%得到文件号
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件号1的数据读到f中。其中f是[12 90]的矩阵
%这里'%f %f'表示读取数据的形势,他是按原始数据型读出
fclose(fid);
%关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load('fx.txt)
我个人觉得用第一种方式较好。因为有些时候,特别是fx.txt 的一行种有多个数据时用load
就比较麻烦了。
『伍』 matlab读取txt,找到对应标题下的数据
TXT文件是纯文本文件,matlab中读取文本文件包括高级函数和低级函数两类型。
高级函数包括:load从文本文件导入数据到MATLAB空间中、importdata从文本文件或特殊格式二进制文件、读取数据dlmread从文本文件中读取数据。低级函数包括:fopen打开文件、获取打开文件的信息、fclose关掉一个或多个打开的文件、fgets读取文件中的下一行。
MATLAB是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能,为众多科学领域提供了全面的解决方案。
『陆』 matlab读写txt文件
fid=fopen('1.txt','at+');%打开txt文件
fprintf(fid,'%f\t',A);%写入数组A
fclose(fid);关闭文件
fid=fopen('1.txt','r');%打开txt文件
B=fscanf(fid,'%f')%将数组中的数据读出到数组B中,txt中的数据按列读出
fclose(fid);
C=B'%转置得到行向量
『柒』 matlab怎么打开和读取txt文件
我这里有一个读取的实例你可以看一下
%%
格式化文本的读操作%只读形式打开txt文件file_t
=
fopen('mytxt.txt','r');%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行A
=
fscanf(file_t,'%d');%关闭文件fclose(file_t);%%
使用textscan读取多列数据file_t
=
fopen('mytxt.txt','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}CD%%
textread函数读取,现在不常用%这种形式将每一列分别给A,B[A,B]
=
textread('mytxt.txt','%d
%d');AB%这种形式将txt文件排成一列赋给CC
=
textread('mytxt.txt','%d');C%%
忽略标题file_t
=
fopen('headline.txt','r');%忽略掉第一行的标题信息A
=
textscan(file_t,'%d
%d','HeaderLines',1);A%%
使用textscan扫描字符串中的数据clcstr_1
=
'The
number
is
1
2
3
4
5';%首先使用textscan获取第一个前14个字符[str1,position1]
=
textscan(str_1,'%14c',1);str1{:};
%The
number
is
position1;
...
',';Hello.53',',';,'%c\n就行;
%14%获取字符串的长度[temp1;r',排的顺序为;%%
每写入一次换行或插入想要的字符file_1
=
fopen(');;AB%这种形式将txt文件排成一列赋给CC
=
textread('%忽略掉第一行的标题信息A
=
textscan(file_t;);:先从第一行左边到第一行右边,现在不常用%这种形式将每一列分别给A;,D返回位置信息[C;%%
扫描字符串2clearclcstr
=
'text_w,'.txt',然后排第二行A
=
fscanf(file_t;),'C%%
忽略标题file_t
=
fopen('%d\r\.txt'%d
%d'fclose(file_t),不存在新创建一个文件开始写file_1
=
fopen('mytxt,',2);%每写入一个数字;r',1),D]
=
textscan(file_t;
%The
number
is
position1;%然后读取后面的数字字符串str_2
=
textscan(str_1(position1+1;);%d
%d',多列按列输出temp
=
randint(4.txt',1225);r回车符
\,%s为输出字符串fprintf(1;%\fprintf(file_1;%d
'%14c'n换行符
这里必须回车换行连用fprintf(file_1;;%9c',B]
=
textread('.txt');r',%c为输出单个字符;%d'%%
使用textscan读取多列数据file_t
=
fopen(',cell共有两个元素A
=
textscan(file_t,'.txt','%d
%d'A%%
使用textscan扫描字符串中的数据clcstr_1
=
','.txt'headline,1)!
World.txt'%d
%d'%%
fprintf在命令空间输出str_1
=
'34]);;%首先使用textscan获取第一个前14个字符[str1,');),B[A;text_w,'%将字符串转化为数值num
=
str2num(str_2{1})%%
格式化文本的写操作%使用fprintf向文件中写入数据%写形式打开文件;%C和上面A一样;这时输出换行只需\%关闭文件,[32,1););;%以数字形式写入数据fprintf(file_1;);%这里fid
=
1;%d'我这里有一个读取的实例你可以看一下
%%
格式化文本的读操作%只读形式打开txt文件file_t
=
fopen(';;%d',position1]
=
textscan(str_1;%将原来的两列数据以数组原包(cell)的形式读取:temp2);w'fclose(file_1);n'),后加一个空格:},temp);w'mytxt;%下面这这一句相当于+198501120-10,',且读取的数据自动排成一列,temp2]
=
size(str_1);,'The
number
is
1
2
3
4
5'mytxt;A{1}
%原包数据的第一个元素对应第一列A{2}CD%%
textread函数读取;%关闭文件fclose(file_t);;%以十进制读取,'.53%不是你给的+19850112-010,'%将
替换为0A
=
find(str
==
32);;;1985
112
-10;mytxt;,返回0表示关闭成功fclose(file_1),存在就打开;HeaderLines',str_1)!'n','str1{;str(A)
=
48
『捌』 如何用matlab处理txt文件里的数据
比如,你的文件名为A.txt
确保A中是行或列矩阵
现在导入
x=load('A.txt');
%x是行或列矩阵
y=sin(x)
%
这里加入公式是y=sin(x),这个你根据自己的可以换。
然后到处y即可,也可以作图。
『玖』 matlab如何读取txt文件
1、首先,这里举例自己先制作一个 文本文件,如下面页面的内容。
『拾』 Matlab批量读取一个文件夹里的txt文件
Matlab批量读取一个文件夹里的txt文件的方法。
如下参考:
1.首先,在这里举例制作一个txtde文本文件,如下面页面的内容。