2013-09-28 99 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命令抓起。