针对txt文件的循环读入,可采用fopen+textscan+fclose方式来完成,采用矩阵拼接的方式可以将多个txt中的数据整合到一个矩阵中,由于textscan能够适用多种格式(数字、字符串等),因此运用较为灵活。需要注意的是textscan读入的数组为胞元形式。
clear all;
clc;
[filename pathname]=uigetfile('*.txt','MultiSelect','on');
C=[];
for i=1:size(filename,2)
str=[pathname filename{1,i}];
fid=fopen(str);
A=textscan(fid,'%f %f\r\n');
fclose(fid);
B=[A{1,1} A{1,2}];
C=[C;B];
end
对于纯数据的txt,也可以采用load和save方式进行循环读入,这种方式相对较为快捷简便。若txt中包含有字母或者文字,采用load则会报错。
clear all;
clc;
[filename pathname]=uigetfile('*.txt','MultiSelect','on');
for i=1:size(filename,2)
str=[pathname filename{1,i}];
fid=fopen(str);
A=load(str);
save('A.txt','A','-ascii','-append');
end
采用save保存文件路径等字符串时,matlab保存的字符串格式为结构体(struct),保存和读取路径可采用如下代码
[filename pathname]=uigetfile('*.txt',);
save pathname.mat pathname;
A=load(pathname);
str=A.pathname;