0
function [ y ] = EquationDerivs(x, w)
%EQUATIONDERIVS Summary of this function goes here
% Detailed explanation goes here
if (w==0.2)
y = ((0.2*cos(x))+1)/((0.2+cos(x))^2);
elseif (w==0.3)
y = ((0.3*cos(x))+1)/((0.3+cos(x))^2);
elseif (w==0.4)
y = ((0.4*cos(x))+1)/((0.4+cos(x))^2);
elseif (w==0.5)
y = ((0.5*cos(x))+1)/((0.5+cos(x))^2);
elseif (w==0.6)
y = ((0.6*cos(x))+1)/((0.6+cos(x))^2);
elseif (w==0.7)
y = ((0.7*cos(x))+1)/((0.7+cos(x))^2);
elseif (w==0.8)
y = ((0.8*cos(x))+1)/((0.8+cos(x))^2);
elseif (w==0.9)
y = ((0.9*cos(x))+1)/((0.9+cos(x))^2);
elseif (w==1)
y = 1/(1+cos(x));
else
y = -115;
end
end
所以我有這個簡單的代碼來告訴MATLAB時,使用基於W的價值和W上== 0.3是什麼原因一功能的dertiviate唯一的工作,和代碼跳轉到else語句的人很少有人知道爲什麼?我會在下面發佈我的命令窗口,但注意W如何等於0.3,0.6或0.9只是跳到我的else語句?Matlab的ELSEIF語句不能在一定條件下
for W = 0.2:0.1:1
theta = degtorad(30);
yP = feval(@EquationDerivs,theta,W)
end
yP =
1.0324
yP =
-115
yP =
0.8400
yP =
0.7679
yP =
-115
yP =
0.6549
yP =
0.6099
yP =
-115
yP =
0.5359
>>
非常感謝!你說得很對,爲什麼我不認爲只是把w放在等式中來代替所有的陳述。 – MaxSpd
@MaxSpd我建議你學習一些編程,這是編寫代碼背後非常非常基本的想法之一。如果這對你有幫助,考慮接受答案是有效的 –
不管你信不信,但是2年的高中編程甚至沒有提到我們用二進制和十六進制編寫數字的這類事情,但我們從來沒有去過這個。您鏈接的回覆也非常有用,再次謝謝您! – MaxSpd