Using logical operator in an if condition
古いコメントを表示
Hi, I want my 'if' condition as follows:
if true
if (x==1) && (A(2,1)==1 || A(2,2)==1 || A(2,3)==1)
...
end
(Please disregard the first line with 'if true' )
I mean, I want my condition to be x equals 1 and one of A(2,1) A(2,2) or A(2,3) to be equal 1 as well. I think, the way that the expression above is written, is incorrect because even the condition isn't satisfied, program continues to execute the if statement.
How should I write the above condition?
Thank you Kaan Yilmaz
回答 (2 件)
Roger Stafford
2016 年 6 月 5 日
編集済み: Roger Stafford
2016 年 6 月 5 日
0 投票
You are using the "short circuit" logical operators. They work for scalars but not for vectors with more than one element. In the latter case change to '&' and '|'.
Another possibility for your difficult is that you are requiring exact equality which may not be satisfied if x, y, z, or t differ from 1 in their least binary digits from rounding errors.
2 件のコメント
Kaan Yilmaz
2016 年 6 月 5 日
編集済み: Kaan Yilmaz
2016 年 6 月 5 日
Roger Stafford
2016 年 6 月 5 日
編集済み: Roger Stafford
2016 年 6 月 5 日
I would like to see your actual code that you are using to produce the wrong result, including how A is generated.
aakash jain
2021 年 3 月 4 日
0 投票
Error in untitled1233 (line 4)
if Z == 0 || X==P
ERROR
カテゴリ
ヘルプ センター および File Exchange で Shifting and Sorting Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!