if文での複数条件が反映されない
Show older comments
for i=1:n-1
if (0<=c_q(i,2)) && (c_q(i,2)<=360)
a_hr(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*ah_r(i,2);
a_kr(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*ak_r(i,2);
a_ar(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*aa_r(i,2);
elseif c_q(i,2)>360
a_hr1(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*ah_r(i,2);
a_kr1(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*ak_r(i,2);
a_ar1(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*aa_r(i,2);
else
a_hr2(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*ah_r(i,2);
a_kr2(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*ak_r(i,2);
a_ar2(i,1)=abs((timestep(i+1,2)-timestep(i,2)))*aa_r(i,2);
end
end
0<=c_q(i,2)<=360の条件でのみa_hr, a_kr, a_arを出力したいのですが,上記のコードだと条件外の場合も出力してしまいます.
なぜ条件外も出力されるのか原因が分からないので教えていただきたいです.
なお,c_qは負の値から徐々に正の値に変化する実数です.
2 Comments
Atsushi Ueno
on 15 Nov 2021
c_qは二次元の行列ですか? 三次元以上の行列ではないですか?
Atsushi Ueno
on 15 Nov 2021
先のコメントは取り消します。
例えば三次元の行列に対しa(2,3)と二次元分のみ指定するとa(2,3,1)を指定するのと同じ事になります。
ベクトルを比較しているのではないかと疑いを持ってしまいましたが必ずスカラ同士を比較する事になります。
Accepted Answer
More Answers (0)
Categories
Find more on アプリの作成 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!