matlab if m不等于0,matlab问题clearfor a=0.1:0.1:50for b=0.1:0.1:20for m=0.1:0.1:5
來源:學生作業幫 編輯:作業幫 分類:綜合作業 時間:2021/03/23 06:16:09
matlab問題
clear
for a=0.1:0.1:50
for b=0.1:0.1:20
for m=0.1:0.1:5
for k=1:1:15
n=(a*m)/(2*b)-m^2;
z=4*k-a*m;
x=(4*k-a*m)/(4*k-2*b*(m^2+n));
y=(4*k-a*m)/(4*k-2*b*m^2);
f=b^2*x^2*(m^2+n)-2*a*b*m*x-b^2*y^2*(m^2+4*n)+2*a*b*m*y;
if =0 && f>0 && n>3
disp([a,b,m,k,n])
end
end
end
end
end
上面程序,我明明在if條件里寫了z不等于0,為什么運行的結果,計算出z是等于0的?
你好,我測試過了,您寫的 if z~=0 && f>0 && n>3沒有問題,當z=0的時候是進不去disp([a,b,m,k,n])的,所以z起到判斷邏輯調價你的作用,不會對你的結果造成任何影響.如果你
方便的話,請你說明一下 你說的運行結果是什么結果!
再問: 4.0000 0.1000 3.0000 3.0000 51.0000
8.0000 0.1000 3.5000 7.0000 127.7500
上面截取了一段結果,計算一下z=4*k-a*m,都是為0.。。不知道咋回事。
再答: z值計算出來后是個浮點數,這個問題會影響你的。所以判斷時希望你慎重。這個應該就是你的問題所在了。
希望你留意一下,matlab里面顯示出來的數據,和 參數運算的數據類型不一致,你要試試。比如 0.0000001你顯示的時候可能就是0 。不知道你明白我的意思了嗎
再問: 謝謝,我大概明白了。我把z~=0改成了z-0>0,不知道這樣表示可不可以。因為改完之后運行,沒有顯示結果,不知道是沒有解還是這樣表示不對。
再答: 你不能單純的說大于0吧,如果z是負數的話,你寫的那個是不是就又有問題了。你可以取絕對值然后和一個非常小的值比較 比如1e-06 c語言里面學過的,參考一下。建議你還是先測試你的if邏輯結構是否正確吧,調試一下,好運!
再問: 非常謝謝你!!
總結
以上是生活随笔為你收集整理的matlab if m不等于0,matlab问题clearfor a=0.1:0.1:50for b=0.1:0.1:20for m=0.1:0.1:5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘128g多少钱啊?
- 下一篇: 陇南看子宫内膜异位症最好的医院推荐