如何在Octave/MATLAB中获得另一个文件夹中的相应文件?

如何在Octave/MATLAB中获得另一个文件夹中的相应文件?,octave,Octave,在我的一个文件夹中(比如Folder01),有像“IGN_A.txt”、“IGN_B.txt”、“IGN_C.txt”这样的文件 在另一个文件夹(比如Folder02)中,有类似于Folder01中对应文件“IGN_A.txt”的文件“sim_IGN_A_M01.txt”、“sim_IGN_A_M02.txt”、“sim_IGN_A_M03.txt” 同样,Folder01中对应文件“IGN_B.txt”的“sim_IGN_B_M01.txt”、“sim_IGN_B_M02.txt”、“sim_

在我的一个文件夹中(比如Folder01),有像“IGN_A.txt”、“IGN_B.txt”、“IGN_C.txt”这样的文件

在另一个文件夹(比如Folder02)中,有类似于Folder01中对应文件“IGN_A.txt”的文件“sim_IGN_A_M01.txt”、“sim_IGN_A_M02.txt”、“sim_IGN_A_M03.txt”

同样,Folder01中对应文件“IGN_B.txt”的“sim_IGN_B_M01.txt”、“sim_IGN_B_M02.txt”、“sim_IGN_B_M03.txt”

如何从这些文件夹中获取相应的文件。 例如,我想获得“IGN_A.txt”以及“sim_IGN_A_M01.txt”、“sim_IGN_A_M02.txt”、“sim_IGN_A_M03.txt”。 在这里我添加了我的代码,它只能获得“IGN_A.txt”和“sim_IGN_A.txt”


如果命名约定与您提供的一致,我的建议如下:

% Get all filenames from Folder01 in cell array.
Allfiles_Folder01 = dir(fullfile(Folder01, '*IGN*.txt'));
Allfiles_Folder01 = {Allfiles_Folder01.name}

% Iterate all filenames from Folder01.
for k = 1:numel(Allfiles_Folder01)

  % Cut file extension from current filename.
  filename = Allfiles_Folder01{k};
  filename = filename(1:end-4);

  % Get all filenames from Folder02 with specific search string in cell array.
  Allfiles_Folder02 = dir(fullfile(Folder02, strcat('*', filename, '*.txt')));
  Allfiles_Folder02 = {Allfiles_Folder02.name}

  % Do stuff with filenames from Folder02 corresponding to filename from Folder01.
  % ...
  % ...

end

您需要
fileparts
fullfile
,还需要简单的连接。您可以更改我的代码吗?我以不同的方式尝试了它,但无法管理它。使用
glob
如果你想要一个文件名的单元格数组,不要期望文件扩展名总是3chars@Andy你说得对,谢谢你的提示。我没有注意到这一点,因为我假设只有
txt
files.btw,还有
fileparts
来分割目录、文件名和扩展名(我应该在之前的评论中提到这一点)
% Get all filenames from Folder01 in cell array.
Allfiles_Folder01 = dir(fullfile(Folder01, '*IGN*.txt'));
Allfiles_Folder01 = {Allfiles_Folder01.name}

% Iterate all filenames from Folder01.
for k = 1:numel(Allfiles_Folder01)

  % Cut file extension from current filename.
  filename = Allfiles_Folder01{k};
  filename = filename(1:end-4);

  % Get all filenames from Folder02 with specific search string in cell array.
  Allfiles_Folder02 = dir(fullfile(Folder02, strcat('*', filename, '*.txt')));
  Allfiles_Folder02 = {Allfiles_Folder02.name}

  % Do stuff with filenames from Folder02 corresponding to filename from Folder01.
  % ...
  % ...

end