2017-03-25 52 views
0

我在下面的代碼中使用'isnan'命令時出現問題。在if和interp1命令中使用NaN

我有6個值,其中一些是NaN。如果'interp1'命令發現最終值爲NaN給出'c',MATLAB必須給我錯誤信息。

a=[1 2 3 4 5 6]; 
b=[10 15 20 NaN NaN NaN]; 
c=[1.5 4 3.5 4.5 5.1 5.9]; 
for g=1:1:numel(a) 
if interp1(a,b,c(g))==NaN; 
     disp('There is a mistake here') 
    end 
end 

但是,MATLAB不會使用NaN運行此命令。

*In interp1 at 178 
Warning: NaN found in Y, interpolation at undefined values 
    will result in undefined values.* 

我該如何解決這個問題?

謝謝

回答

0

什麼是你的matlab版本?

對於我這個代碼工作實現(matlab R2013b):

a=[1 2 3 4 5 6]; 
b=[10 15 20 NaN NaN NaN]; 
c=[1.5 4 3.5 4.5 5.1 5.9]; 
for g=1:1:numel(a) 
if isnan(interp1(a,b,c(g))) 
     disp('There is a mistake here') 
    end 
end 
+0

R2008b。此代碼也適用於我的軟件,但給我警告錯誤:警告:在Y中發現NaN,在未定義值處插值 \t將導致未定義的值。 >在interp1中,178 – voo

+0

ok,所以它正在工作,它只是說當你有未定義的值時,插值的輸出是不確定的,如果可以,你只要忽略它 –

+0

謝謝daren shan。現在我正在使用代碼,它的工作很棒。 – voo