2013-09-28 47 views
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循环运行)

谢谢!

-Victoria

+0

“索引超过......”错误意味着你们中的一个正试图从数组中获取数据,而这些数据是在该数组的定义范围之外。我敢打赌,它与'OrderForDicoms3'有关......当你得到错误时''crun'的值和'OrderForDicoms3'的大小是什么? – darthbith

回答

0

我可以告诉你,从文件夹中的文件抓取的最普遍的方式。

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 

你总是可以做到这一点对多层次的:如果通过uigetdir指定输入文件夹,然后将所有文件可以使用dir命令抓起。