「if」文でAND演算子を使用するにはどうしたらよいですか?
조회 수: 4 (최근 30일)
이전 댓글 표시
MathWorks Support Team
대략 13시간 전
답변: MathWorks Support Team
대략 6시간 전
次のコードを入力したところ:
if size([1 2 3])==size([4 5 6]) & size([4 5 6])==size([7 8 9])
'yes'
else
'no'
end
MATLABのコードアナライザーから次の警告メッセージが表示されました:「両方の引数が数値スカラーである場合、パフォーマンスのために & を && に置き換えることを検討してください。」
そこで、& を && に置き換えました:
if size([1 2 3])==size([4 5 6]) && size([4 5 6])==size([7 8 9])
'yes'
else
'no'
end
しかし、更新したスクリプトを実行すると、MATLABのコマンドウィンドウに以下のエラーメッセージが表示されます:
「??? || および && 演算子のオペランドは、論理スカラー値に変換可能でなければなりません。」
この問題を解決するにはどうしたらよいでしょうか?
채택된 답변
MathWorks Support Team
대략 13시간 전
この問題は、size 関数がベクトルを返すことに起因しています:
size([1 2 3])
ans =
1 3
代わりに、numel 関数を使用してください:
if numel([1 2 3])==numel([4 5 6]) && numel([4 5 6])==numel([7 8 9])
disp('yes')
else
disp('no')
end
または、次のように all 関数を使用することもできます:all(size([1 2 3])==size([4 5 6])) など。
さらに、他の警告に対処するために、disp コマンドを追加しました。
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 ビッグ データの処理에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!