【发布时间】:2023-03-31 08:21:01
【问题描述】:
我以前有 Matlab,并使用以下代码将目录“C:\folder\”中的所有 txt 文件加载到 Matlab 中:
myFolder = 'C:\folder\';
filepattern = fullfile(myFolder, '*.txt');
files = dir(filepattern);
for i=1:length(files)
eval(['load ' myFolder,files(i).name ' -ascii']);
end
如果 C:\folder\ 包含 A.txt、B.txt、C.txt,那么我将在工作区中有矩阵 A、B 和 C。
代码在 octave 中不起作用,可能是因为“fullfile”?无论如何,通过以下代码,我得到名称为 C__folder_A、C__folder_B、C__folder_C 的矩阵。但是,我需要称为 A、B、C 的矩阵。
myFolder = 'C:\folder\';
files = dir(myFolder);
for i=3:length(files)
eval(['load ' myFolder,files(i).name ' -ascii']);
end
你能帮帮我吗? 谢谢, 马丁
PS:循环从 3 开始,因为 files(1).name = .和文件(2).name = ..
编辑: 我刚刚找到了解决方案。它并不优雅,但它确实有效。 我只是用“addpath”添加文件所在的路径,然后我不必在循环中给出目录的全名。
myFolder = 'C:\folder\';
addpath(myFolder)
files = dir(myFolder);
for i=3:length(files)
eval(['load ' files(i).name ' -ascii']);
end
【问题讨论】:
标签: matlab matrix load octave dir