保存使用importdata导入的多个文件

时间:2015-11-05 01:28:53

标签: matlab

我使用下面的代码使用importdatafor命令读取多个文件。我遇到的问题是只保存了最后一个文件。我从importdata得到一个矩阵,但它应该是6个矩阵

如何保存我导入的所有矩阵?

myFolder = 'M:\Matlab\Experiment-Result\read all';
filePattern = fullfile(myFolder, '*.dat')
theFiles = dir(filePattern);
for k = 1 : length(theFiles)
    baseFileName = theFiles(k).name;
    fullFileName = fullfile(myFolder, baseFileName);
    fprintf(1, 'Now reading %s\n', fullFileName);
    Data = importdata(fullFileName);
end

1 个答案:

答案 0 :(得分:1)

很简单的原因。 Data在循环的每次迭代中都会被覆盖,因此一旦for循环停止,只会保存从上一次迭代读入的数据。如果你想每次迭代保存数据,我不知道你的数据是如何构建的,但为了使它具有最大的适应性,让Data成为一个单元格数组:

myFolder = 'M:\Matlab\Experiment-Result\read all';
filePattern = fullfile(myFolder, '*.dat')
theFiles = dir(filePattern);
Data = cell(1,numel(theFiles)); %// Change
for k = 1 : length(theFiles)
    baseFileName = theFiles(k).name;
    fullFileName = fullfile(myFolder, baseFileName);
    fprintf(1, 'Now reading %s\n', fullFileName);
    Data{k} = importdata(fullFileName); %// Change
end 

要访问k th 数据文件,只需执行以下操作:

out = Data{k};

然后,您可以使用out,就好像它是一个矩阵,并以您认为合适的方式进入索引/切片。