2013-04-14 36 views
0

我知道這種類型的問題已被問過很多次,但我無法理解我的代碼的問題。我也是八度中絕對的初學者。下標索引必須是正整數或邏輯

function Z=nat_spline(n, T, Y) 
    for i=0:n-1 
    H(i) = T(i+1) - T(i); 
    B(i) = 6*(Y(i+1) - Y(i))/H(i); 
    end 
    U(1) = 2*(H(0)+H(1)); 
    V(1) = B(1) - B(0); 
    for i=2:n-1 
    U(i) = 2 * (H(i) + H(i-1)) - ((H(i-1))^2/U(i-1)); 
    V(i) = B(i) - B(i-1) - H(i-1)*V(i-1)/U(i-1); 
    end 
    Z(n) = 0 
    for i=n-1:1 
    Z(i) = (V(i)-H(i)*Z(i+1))/U(i); 
    end 
    Z(0) = 0; 
end 

它是一個短代碼,所以我想這很容易發現任何錯誤。非常感謝您的幫助。陣列的

+0

[下標索引必須是真正的正整數或邏輯,通用解決方案]的重複(http://stackoverflow.com/questions/20054047/subscript-indices-must-either-be-real-positive-integers-or-logicals-generic-sol) –

回答

3

索引從1開始在MATLAB :) 您的H(i)和B(ⅰ)將H(0)B(0)在該循環的第一次迭代,這將給出錯誤 所以for i=1:n

+0

哦,哇。不過謝謝 – user44273

0

那麼,標題告訴它:如果不是邏輯。下標必須嚴格爲正整數值。像H(0)Z(0)之類的東西將無法正常工作,因爲嚴格正整數值以1開頭。

相關問題