0

我对 MATLAB 有点陌生,正在尝试在循环中设置一个不断变化的文件路径,以进入一系列文件夹并从每个文件夹中获取图像文件。我不确定问题出在路径本身的连接部分,还是与我正在使用的通配符搜索有关。

在此之前我使用过类似的更改文件路径,但是这个给了我一个"Index exceeds matrix dimensions"错误。我认为这是有问题的'*'元素(类似的连接路径对我有用,但仅当我指定文件扩展名或文件名的一部分时),但我试图获取没有任何文件的 DICOM 文件扩展,这可能会使其变得困难。

for循环中的行如下:

inputs{1, crun} = cellstr(spm_select('FPList'[allinput,'T1Rawunzip',filesep,OrderForDicoms3{crun,1}],'*'));

我尝试了不同的方法来指定它——使用 spm_select,不使用 spm_select,使用逗号而不是 filesep,反之亦然,但没有任何效果。

任何建议将不胜感激。

(供参考: crun是向前移动循环的计数器,'allinput'是先前指定的路径,OrderForDicoms3是一个 .mat 文件,其中包含文件夹名称列表,每次循环运行时,这些文件夹名称都单独连接到路径)

谢谢!

-维多利亚

4

1 回答 1

0

我可以告诉您从文件夹中获取文件的最通用方法。如果通过 指定输入文件夹uigetdir,则可以使用dir命令抓取所有文件:

folder = uigetdir;
files = dir(folder);
for i =1:length(files)
    if(~files.isdir())
          filename = fullfile(folder, files(i).name);
          % ... read in the data %
    end
end

您始终可以为多个级别执行此操作。

于 2013-09-28T16:37:46.740 回答