How to get rid of Warning"Unexpected use of '[' in a scalar context."

38 ビュー (過去 30 日間)
Crystal Lee
Crystal Lee 2018 年 8 月 13 日
回答済み: David 2024 年 12 月 7 日
a part of the function has:
if the input A (a vector) matches what is stated, the statement runs.
if A == [1,3,3]
% statement
end
and it gives me this error: 'Unexpected use of '[' in a scalar context. How can I fix this?
  2 件のコメント
dpb
dpb 2018 年 8 月 13 日
Must be more than that; that code runs w/o any error here...
>> A=3;
>> if A==[1, 3, 3],disp('ok'),end
>> A=[1 3 3];
>> if A==[1, 3, 3],disp('ok'),end
ok
>>
Show us the context including the error message with all the text generated...
Crystal Lee
Crystal Lee 2018 年 8 月 13 日
There is no red text, I was just wondering if I could get rid of the orange warning.

サインインしてコメントする。

採用された回答

Stephen23
Stephen23 2018 年 8 月 13 日
編集済み: Stephen23 2018 年 8 月 13 日
Use all or any, like this:
if all(A==[1,3,3])
Or right-click the pop-up warning box and follow the instructions to suppress it.
  3 件のコメント
Thiago  Rodrigues
Thiago Rodrigues 2020 年 9 月 17 日
What the explanation for the "all" fix the warning?
Stephen23
Stephen23 2020 年 9 月 17 日
編集済み: Stephen23 2020 年 9 月 17 日
"What the explanation for the "all" fix the warning?"
Given a vector input the output from all is scalar. A scalar condition is easier to understand, which is why it is recommended by that warning.

サインインしてコメントする。

その他の回答 (2 件)

KSSV
KSSV 2018 年 8 月 13 日
When you use A == [1 3 3] ;
With this operator ==, MATLAB expects a scalar value, but the way used here, it gives array as output. So the warning pops out. The way you use, won't work out. YOu need to use the operator == with a scalar value, so the if condition works fine.
  5 件のコメント
KSSV
KSSV 2018 年 8 月 13 日
Yes....it is not a error..it is a warning....I am using 2015b.
Crystal Lee
Crystal Lee 2018 年 8 月 13 日
Sorry, I confused warning with error.

サインインしてコメントする。


David
David 2024 年 12 月 7 日
You may want to use isequal instead of == for that use case.

カテゴリ

Help Center および File ExchangeScope Variables and Generate Names についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by