2013-03-15 83 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