我对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文件,其中包含单独连接到路径的文件夹名称列表每次循环运行时)
谢谢!
-Victoria
答案 0 :(得分: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
您可以随时为多个级别执行此操作。