「if」文でAND演算子を使用するにはどうしたらよいですか?
44 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 21 Nov 2024 à 0:00
Réponse apportée : MathWorks Support Team
le 21 Nov 2024 à 6:59
次のコードを入力したところ:
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のコマンドウィンドウに以下のエラーメッセージが表示されます:
「??? || および && 演算子のオペランドは、論理スカラー値に変換可能でなければなりません。」
この問題を解決するにはどうしたらよいでしょうか?
Réponse acceptée
MathWorks Support Team
le 21 Nov 2024 à 0:00
この問題は、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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur ビッグ データの処理 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!