How do you use logical operators for this problem in multiple unnested if statements?
1 回表示 (過去 30 日間)
古いコメントを表示
I'm given the following:
x=0:3:21;
y=10;
z=15;
When x < y and z, the code has to dispaly "Value is less that y and z". When y<x<z, the code has to display "Value is between y and z". When x > y and z, the code has to display " Value is greater than y and z." I was able to do this with a for loop and nested if statements, but I also have to write the code using unnested if statements. My code either gives logical array instead of a displayed answer or an error statement. This is what I have so far, and it gives a logical array.
x=0:3:21;
y=10;
z=15;
if x<y %& x<z %y is less than z, so if x is less than y, then x must also be less than z
disp('Value is less than y and z')
elseif x>z & x>y %z is greater than y, so if x is greater than z, then x must also be greater than y
disp('Value is more than y and z')
else y<x<z
disp('Value is between y and z')
end
0 件のコメント
回答 (1 件)
Image Analyst
2022 年 2 月 26 日
Replace
else y<x<z
with
elseif (y < x) && (x < z)
1 件のコメント
Steven Lord
2022 年 2 月 27 日
Because x is a vector that won't work. You could wrap the conditions in all or any to get it to work or you could use the non-short-circuiting and operator &.
x = 1:10;
y = 0;
z = 11;
all(y < x) && all(x < z) % true
(y < x) & (x < z) % vector of true values
(y < x) && (x < z) % error
参考
カテゴリ
Help Center および File Exchange で Spline Postprocessing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!