我有很多.txt文件,其中包含n行和7列,每行用空格分隔。我想将每个文件转换为.mat文件,并将其保存在同一文件夹中。
我尝试了这个,但是没有用:
files = dir('*.txt');
for file = files'
data=importdata(file.name);
save(file.name, 'data');
end
虽然这适用于单个文件,但由于我拥有的.txt文件数量非常大,我想以可编程的方式进行操作:
data=importdata('myfile.txt');
save('myfile', 'data');
谢谢您的帮助
答案 0 :(得分:2)
这应该有效
files = dir('*.txt');
for idx = 1:length(files)
file_name = files(idx).name;
fprintf("Processing File %s\n",file_name);
data=importdata(file_name);
[filepath,name,ext] = fileparts(fullfile(pwd,file_name));
save([name '.mat'],'data');
end
dir创建了一个结构,您需要对其进行索引,因此我们创建了for循环,从1开始,一直进行下去,直到dir的所有元素都已处理完毕。 请注意,在代码中,我还添加了一个部分,用于将文件名(例如file1.txt)拆分为文件名和扩展名。因此,在创建Mat文件时,我们仅使用名称部分而不使用扩展名。
答案 1 :(得分:2)
@ scotty3785的答案很好用,如果有人需要它也对我有用:
files = dir('*.txt');
for i=1:length(files)
data=importdata(files(i).name);
save(erase(files(i).name,".txt"), 'data');
end