2014-10-08 230 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