- switch_expression は、スカラーまたは文字ベクトルでなければなりません
- case_expression は、スカラー、文字ベクトル、またはスカラーか文字ベクトルの cell 配列でなければなりません。
switch文で同じ処理を複数のcaseで実行したい
118 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
タイトル通りなのですが、switch文で複数のcaseで同じ処理を実行したいと思っています。
やりかたをググってマトラボのページは見つけられなかったのですが、C言語のページでイメージと似たものがあったので、
●switch文で複数のcaseで同じ処理を実行する
マネして書いてみたところ、
switch abcde
case 'A'
case 'B'
~ AとBの場合に処理したい内容 ~
・・・
実行したら、Aが無視されていました。
switch abcde
case 'A'
~ AとBの場合に処理したい内容 ~
case 'B'
~ AとBの場合に処理したい内容 ~
・・・
と分けて書いたらできますが、無駄な感じがするのでやっぱりまとめたいです。
●switch caseのヘルプページ
https://jp.mathworks.com/help/matlab/ref/switch.html?searchHighlight=switch&s_tid=srchtitle_switch_1
もみていたのですがこのパターンが見当たらず、どう直したら実行されるのかわからなくて質問をさせていただきました。
わかる方がいらっしゃいましたら、お手数をおかけいたしますがご教示いただけますと幸いです。
どうぞよろしくお願いいたします。
0 Kommentare
Akzeptierte Antwort
Atsushi Ueno
am 16 Mär. 2023
for abcde = 'ABC'
fprintf('abcde = ''%c''\n',abcde);
switch abcde
case 'A'
disp('~ abcde==''A'' の場合に処理したい内容 ~');
case 'B'
disp('~ abcde==''B'' の場合に処理したい内容 ~');
otherwise
disp('~ その他の場合 ~')
end
end
>どう直したら実行されるのか
下記の様な書き方で実行可能です。比較対象を複数個に出来ます。ドキュメントには下記の通り記載されています。
for abcde = 'ABC'
fprintf('abcde = ''%c''\n',abcde)
switch abcde
case {'A','B'} % case_expression を文字ベクトルの cell 配列にする
disp('~ abcde==''A'' または abcde==''B''の場合に処理したい内容 ~');
otherwise
disp('~ その他の場合 ~')
end
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!