我有一个主代码和一个从.dat文件导入数据的函数,我想导入很多案例,因此,我创建了几个目录来构建文件。
这是我正在使用的功能的相关部分:
function [time_,cm,cd_,cl,clf1,clr] = importcd2(filename, startRow, endRow)
formatSpec = '%7s%33s%24s%24s%24s%s%[^nr]';
%% Open the text file.
fileID = fopen(filename,'r');
textscan(fileID, '%[^nr]', startRow(1)-1, 'ReturnOnError', false);
然后,当我想从主代码调用函数时,我使用:
[a,~,b,~,~,~] = importvar('/folder1/folder2/folder3/folder4/folder5/file1.dat', 1, inf);
其中 a 和 b 是我想从.dat文件中导出的变量。我想做的是更改函数,以便 fopen 可以打开整个路径,而不仅仅是文件的 ID (file1.dat),因为我更喜欢在同一个目录中有一些目录而不是 30 个.dat或更多文件。可能吗?我的问题不同于如何在 MATLAB 中的一个步骤中加载 100 个具有相似名称和/或字符串的文件?
提前感谢!
您可以使用
dir
命令获取文件夹中的所有.dat文件,然后使用for
循环遍历所有文件
function [time_,cm,cd_,cl,clf1,clr] = importcd2(dirname, startRow, endRow)
DatFiles = dir([dirname filesep '*.dat']);
for k=1:numel(DatFiles)
fileID = fopen(DatFiles(k).Name,'r');
...
end