通读并保存具有不同文件名的文件
Posted
技术标签:
【中文标题】通读并保存具有不同文件名的文件【英文标题】:Read through and save files with different filenames 【发布时间】:2014-06-04 14:53:38 【问题描述】:我有一个 CSV 文件列表。这些文件的文件名以 [year '_MDA8_mat.dat'] 的形式存储。我想将这些文件中的每一个读入 MATLAB 并保存输出。如何编写代码,以便轮流考虑每一年,并为每一年保存输出 .mat
文件?
这是我在其中一个文件中阅读的内容:
flist = fopen('2006_MDA8_mat.dat'); % Open the list of file names - CSV files of states with data under consideration
nt = 0; % Counter will go up one for each file loaded
while ~feof(flist) % While end of file has not been reached
for i = 1:27299 % Number of files
fname = fgetl(flist); % Reads next line of list, which is the name of the next data file
disp(fname); % Stores name as string in fname
nt = nt+1; % Time index
load (fname, 'site_data'); % Load current file. It is all the data for one site for one year
O3_datai = site_data;
% Do some more stuff
end
save ('2006_MDA8_1990_2014.mat', '-v7.3')
我试着写一个像这样的for
循环:
year = 2006:2014
for y = 1:9
flist = fopen([year(y) '_MDA8_mat.dat']);
nt = 0; % Counter will go up one for each file loaded
while ~feof(flist) % While end of file has not been reached
for i = 1:1500 % Number of files
% Same as above
end
end
save ([year '_MDA8_1990_2014.mat'], '-v7.3')
end
但是,当我运行它时,它的作用与对一个文件脚本的作用不同。我不太确定错误发生在哪里,但 MATLAB 告诉我 feof
有错误,这似乎没有意义。
【问题讨论】:
年份是数字而不是字符。保存 ([num2str(year) '_MDA8_1990_2014.mat'], '-v7.3') 【参考方案1】:数字和字符串组合时,需要在数字上做num2str
:
[num2str(year) '_MDA8_1990_2014.mat']
【讨论】:
以上是关于通读并保存具有不同文件名的文件的主要内容,如果未能解决你的问题,请参考以下文章