difference between | and || in my function

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 日

0 投票

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 日

1 投票

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.

カテゴリ

ヘルプ センター および File ExchangeProgramming についてさらに検索

タグ

質問済み:

2017 年 1 月 11 日

編集済み:

2017 年 1 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by