※ ChatGPTを利用し、要約された質問です(原文:MATLABでの、1行完結のIF文の書き方について教えてください。)
MATLABでの1行完結のIF文の書き方
このQ&Aのポイント
MATLABでの1行完結のIF文の書き方について教えてください。
if文の条件を複数記述する際にエラーが発生してしまう場合についてのアドバイスをお願いします。
回答者に質問者が実施したテストデータの情報を伝え、条件書き換えの方法を教えてもらいたい旨を伝えています。
MATLABでの、1行完結のIF文の書き方について教えてください。
MATLABでの、1行完結のIF文の書き方について教えてください。
if (i==1);data(~test1 | test2>10) = -9; end
の一文で、iが "8" になったときにのみ、ここでエラーが発生してしまいます。
この文の意味は
「test1ではない または test2が10より大きい 場合、dataに-9を代入する」
だと理解しています。
test1は、test1=(test0<100);
という一文の結果が入っています。実際には
test1 ===> 100*100 logical (100より大きいので、FALSE)
test2 ===> 200*200 double
が入ります。
if (i==1);data(test0>100 | test2>10) = -9; end
と書き直して、両方 double にしてもやはりエラーになりました。
条件を複数記述する書き方が間違っているのでしょうか。
いろいろ試したもののうまくいかず困っています。
アドバイスをいただけましたら助かります。
宜しくお願い致します。
お礼
Kules様 ヒントをたくさん教えてくださいまして、ありがとうございました! 本当に助かりました。 デバック用に複数行に分けて書くこと、 条件を2つ記述する時は行列のサイズが揃っているか、片方がスカラーである必要があること、 さらに、書き変えコードまで書いてくださって、 ここ数日、ネット検索や本や人に聞いて行き詰っていた状態に 明快に打開策が示されてすっきりしました。 本当にありがとうございます。 さっそくご教示の点を踏まえて書きなおしてみます。