2014-10-08 231 views
0

我在执行下面的代码时遇到了问题。当我运行的代码,它显示我:无法在matlab中使用“加载”来读取文件

Error using load 
Unable to read file 'motionDB.mat': no such file or directory. 
Error in: else load ('motionDB.mat'); 

然而,当我删除第二个“如果循环”其正常运行。

我的代码:

user_filter='gaussian'; 
    if(strcmpi(user_filter,'gaussian')==1) 
     h = fspecial('gaussian', [3 3], 1);% gauss filter 
     if ~exist('gaussianDB.mat') 
       createHistDB(num_bins,Dir,srcFiles,filter,h,num_red_bins,num_green_bins,num_blue_bins,B); 
     end 
     else load('gaussianDB.mat'); 
    end 

if(strcmpi(user_filter,'motion')==1)% motion filter 
     h=fspecial('motion', 20, 45); 
     if ~exist('motionDB.mat') 
       createHistDB(num_bins,Dir,srcFiles,filter,h,num_red_bins,num_green_bins,num_blue_bins, B); 
     end 
     else load('motionDB.mat'); 
    end 

任何想法?提前致谢。

回答

0

我认为你已经混淆了代码中的elseend语句。相反的:

if(strcmpi(user_filter,'gaussian')==1) 
    h = fspecial('gaussian', [3 3], 1);% gauss filter 
    if ~exist('gaussianDB.mat') 
      createHistDB(num_bins,Dir,srcFiles,filter,h,num_red_bins,num_green_bins,num_blue_bins,B); 
    end 
    else load('gaussianDB.mat'); 
end 

尝试:

if(strcmpi(user_filter,'gaussian')==1) 
    h = fspecial('gaussian', [3 3], 1);% gauss filter 
    if ~exist('gaussianDB.mat') 
      createHistDB(num_bins,Dir,srcFiles,filter,h,num_red_bins,num_green_bins,num_blue_bins,B); 
    else 
      load('gaussianDB.mat'); 
    end 
end