フィルターのクリア

difference between | and || in my function

73 ビュー (過去 30 日間)
sri satya ravi
sri satya ravi 2017 年 1 月 11 日
編集済み: Stephen23 2017 年 1 月 12 日
Hi ;
I have a code in which
function metCondition = Ambient_Temperature(vector)
metCondition = true; % Initialize
if any((vector) <= -7 | (vector) >= 37.86) %degC
metCondition = false;
end
what is the difference between
if any((vector) <= -7 | (vector) >= 37.86) %degC
and
if any((vector) <= -7 || (vector) >= 37.86) %degC
and why am i getting an error when using ||.
Thanks

採用された回答

James Tursa
James Tursa 2017 年 1 月 11 日
編集済み: Stephen23 2017 年 1 月 12 日
The "|" operator is an element-wise operator, intended to be used on arrays element-by-element. The "||" operator is a short-circuiting operator restricted to be used on scalars only. See the doc:
For your case, you clearly want the | operator.

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2017 年 1 月 11 日
You could use
if any((vector) <= -7) || any((vector) >= 37.86) %degC
|| can only be used when both sides return scalars. || is the "short circuit" OR operator -- it does not bother evaluating the right hand side of the left hand side is already true.

カテゴリ

Help Center および File ExchangeData Types についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by