亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

其中的變量都是定義好的,運行時出現了這樣的錯誤:

其中的變量都是定義好的,運行時出現了這樣的錯誤:

富國滬深 2023-04-22 18:14:59
函數是這樣的:function f=am(x)if x>=0&x<0.01f=280elseif x>=0.01&x<=0.035a=[0.010.0150.020.0250.030.0320.035];b=[280279278.5277272268260];y=polyfit(a,b,5);f=polyval(y,x);elseif x>0.035f=-180/0.035*x+440;end 調用語句:for k=1:mxx(ii+1)=xx(ii+1)+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);end其中的變量都是定義好的,運行時出現了這樣的錯誤:Error in ==> am at 2if x>=0&x<0.01??? Output argument "f" (and maybe others) not assigned during call to "D:\我的文檔\MATLAB\am.m (am)".這是為什么呢,急用,哪位大俠能給解惑,感激不盡!
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

第一段程序(分段函數),沒有問題已通過測試,不過建議您再在末尾加一個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除了問題,重啟一下估計就行了。如果不是第一次,就是你這個程序本身的邏輯出錯,出現了無意義的結果,建議檢查求解范圍。

查看完整回答
反對 回復 2023-04-25
  • 1 回答
  • 0 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號