Need Help TroubleShooting If/Else Statement
2 ビュー (過去 30 日間)
古いコメントを表示
Helo,
Basically I have an if/else statement to ensure a given value obtain from cosine and sine is between -180 and +180.
In other words, if the value ends up being 270-deg, I want it to be -90-deg instead.
I set up an if/else statement as follows, where phi2a comes from a value from a function.
phi2b = 180-phi2a;
if phi2b > 180
phi2b = phi2b-360;
else
phi2b;
end
When I do this, however, whenever phi2b is greater than 180, it still produces a value greater than 180.
I tried to do a sample code (below) to see if the syntax is correct, but this one ended up working when I change the value of A:
A = 1;
if A > 10
A = A+5;
else
A;
end
So if A=1, then it outputs 1. If A = 20, it outputs 25. This is how I want the other if/else to function.
I can show more of my code if need be.
Basically the phi2a is a vector running from 1 to N, where N is 4393. I then plot either phi1a, phi1b, phi2a, or phi2b (Not all of which is shown here), based on another if/else statement. I can show this code as well if it'll help.
If this is confusing please let me know so I can add more information.
Any help is appreciated. Thanks.
Edit: I've added a snippet of my whole code in case that helps.
0 件のコメント
採用された回答
the cyclist
2021 年 3 月 11 日
Is it possible that your input value was greater than 540? Because if it was then it will still be greater than 180 after your if statement:
phi2b = 550;
if phi2b > 180
phi2b = phi2b-360
end
You could take care of this case by using a while loop instead:
phi2b = 550;
while phi2b > 180
phi2b = phi2b-360;
end
disp(phi2b)
7 件のコメント
the cyclist
2021 年 3 月 11 日
編集済み: the cyclist
2021 年 3 月 11 日
idx is a logical variable, the same length as phi2b, that is "true" when phi2b is greater than 180, and "false" when it is not:
phi2b = [179 180 181 182];
idx = phi2b > 180
The next line of my code then uses logical indexing to subtract 180 from the elements where idx = "true":
phi2b(idx) = phi2b(idx) - 180
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!