Matlab从不同的文件夹中打开相同的文件,而不是相互覆盖

时间:2017-12-04 18:28:12

标签: matlab

我是Matlab的新手,我正在寻找一种方法,可以从2414A,2443A,6732A,4577A等几个子文件夹中打开文件调用data.txt,等等,而不会覆盖在彼此之上。所有这些都在一个巨大的文件夹中,只在不同的子文件夹中。

我的问题是,每次打开data.txt并为每个txt文件设置变量时,不是更改文件夹名称,有没有更快的方法呢?因为我的最终目标是连接所有data.txt个物质以进行计算。

我目前只有:

cd C:\User\Aisk_000\Desktop\A\NC\Subjects\2414A\
NC1 = dlmread('data.txt');
cd ../2443A\
NC2 = dlmread('data.xt');
cd ../6732A\

...等。不过,这绝对可以胜任这项工作。

1 个答案:

答案 0 :(得分:1)

这很简单:

files = dir('C:\User\Aisk_000\Desktop\A\NC\Subjects\*\data.txt');
files_num = numel(files);
files_data = cell(files_num,1);

for i = 1:files_num
    file = files(i);
    file_path = fullfile(file.folder,file.name);

    files_data{i} = dlmread(file_path);
end

如果您想构建一个简单的索引系统,请改用此代码:

files = dir('C:\Users\Zarathos\Desktop\*\data.txt');
files_num = numel(files);
files_data = cell(files_num,2);

for i = 1:files_num
    file = files(i);

    file_folder_idx = strsplit(file.folder,'\');
    file_folder_idx = file_folder_idx{end};

    file_path = fullfile(file.folder,file.name);

    files_data{i,1} = file_folder_idx;
    files_data{i,2} = dlmread(file_path);
end

因此,如果您必须在修改文件后将文件保存回磁盘,则可以重建C:\User\Aisk_000\Desktop\A\NC\Subjects\文件夹的结构,并知道在哪个路径中保存当前正在存储的文件数据处理。