第一段程式(分段函式),沒有問題已透過測試,不過建議您再在末尾加一個and,將“&”替換成“&&”,不過不修改也能順利執行,
至於後半段,我預設k=1,ii=2;N=10;呼叫命令為: xx=am(a(k+1))*a(k+1)*cos(2*pi*k*ii/N)+am(b(k+1))*b(k+1)*sin(2*pi*k*ii/N);
給出如下資訊:
Warning: Polynomial is badly conditioned. Add points with distinct X
values, reduce the degree of the polynomial, or try centering
and scaling as described in HELP POLYFIT.
> In polyfit at 80
In am at 19
>> xx
xx =
-3.8062e+008
這說明這段程式本身沒有問題,我給的資料之所以會發出警告,是因為我的ii和N給定不合理,使得用該擬合函式求得的結果不夠精確。
建議樓主看看跳出的時候你的k等於幾,看起是不是第一次呼叫分段函式就出錯,如果第一次就出錯,可能你的matlab除了問題,重啟一下估計就行了。如果不是第一次,就是你這個程式本身的邏輯出錯,出現了無意義的結果,建議檢查求解範圍。
第一段程式(分段函式),沒有問題已透過測試,不過建議您再在末尾加一個and,將“&”替換成“&&”,不過不修改也能順利執行,
至於後半段,我預設k=1,ii=2;N=10;呼叫命令為: xx=am(a(k+1))*a(k+1)*cos(2*pi*k*ii/N)+am(b(k+1))*b(k+1)*sin(2*pi*k*ii/N);
給出如下資訊:
Warning: Polynomial is badly conditioned. Add points with distinct X
values, reduce the degree of the polynomial, or try centering
and scaling as described in HELP POLYFIT.
> In polyfit at 80
In am at 19
>> xx
xx =
-3.8062e+008
這說明這段程式本身沒有問題,我給的資料之所以會發出警告,是因為我的ii和N給定不合理,使得用該擬合函式求得的結果不夠精確。
建議樓主看看跳出的時候你的k等於幾,看起是不是第一次呼叫分段函式就出錯,如果第一次就出錯,可能你的matlab除了問題,重啟一下估計就行了。如果不是第一次,就是你這個程式本身的邏輯出錯,出現了無意義的結果,建議檢查求解範圍。