2013-03-15 55 views
1

我想計算我的Ground Truth和Segmentation結果之間的比較,兩者都保存在main_folder的不同目錄中,我想訪問它,但似乎無法訪問目錄中的數據。有人可以幫我解決代碼有什麼問題嗎?Matlab訪問目錄

下面是代碼:

addpath('main') 
currentDir=pwd; % current directory in main_folder 
cases=dir('Casos_img'); 
interp=1; 
ori=1; 
ASMvGT=zeros(0,1); 
for c=3:size(cases,1) 
    caseName=cases(c).name; 
    gt_case=[currentDir '\Casos_combine\' cases(c).name]; %' 
    % ground truth combined 
    [~,~,~,volumeL,volumeR]=load_file(gt_case,0,ori); 
    ind= volumeR>0;volumeGT=volumeL;volumeGT(ind)=1; 
    [GT1 GT2 GT3]=ind2sub(size(volumeGT),find(volumeGT>0));GT=[GT1 GT2 GT3]; 

    segm_case=[currentDir '\Casos_img\' cases(c).name]; %' 
    [~,~,~,volumeL,volumeR]=load_file(segm_case,0,0); 
    ind= volumeR>0;volumeS=volumeL;volumeS(ind)=1; 
    [ASM1 ASM2 ASM3]=ind2sub(size(volumeS),find(volumeS>0));ASM=[ASM1 ASM2 ASM3]; 

    [hd,~]=HausdorffDist(GT,ASM); 
    ASMvGT=[ASMvGT;hd];%/numel(volumeGT)]; 

end 
save resultshd ASMvGT 

我不能與LOAD_FILE功能的卷,因爲當我調試它的問題是我無法存取權限的目錄裏面的數據。請幫助我,預先感謝您。

回答

0

使用addpath(genpath("___address of main_folder___"))

把你的主文件夾的地址上面。用上面的代碼替換代碼的第一行。你只寫了addpath('main')。因此,它不會添加子文件夾,這就是爲什麼你可能會遇到錯誤。 genpath創建子文件夾列表,因此,如果你結合addpathgenpath,當前文件夾以及所有子文件夾都將得到補充。

+0

我試過了,但它不工作,我會有關文件夾的結構解釋。 main_folder和內部有文件夾Casos_combine和Casos_img,我需要訪問內部的兩個子文件夾中的數據。 讓addpath(「主」),我使用的,因爲裏面的文件夾,主要我有函數,我需要被調用。 你能幫我,我怎麼能訪問子文件夾Casos_combine和Casos_img? – user1146895 2013-03-16 14:29:46

+0

使用'addpath(genpath('____完整路徑的主文件夾____'))'。否則,最簡單的方法是去MATLAB命令窗口,在左邊看到,你會看到你當前的MATLAB目錄。右鍵點擊'Casos_combine'和'Casos_img',然後說'add with subfolders' – 2013-03-16 16:46:58

1

使用chdirfullfile命令創建完整路徑文件名。

+0

謝謝,現在解決這個問題。 – user1146895 2013-04-01 19:03:03