コンポーネント名?が連番のものを、Forで回して処理したい
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
mayu
el 9 de Mzo. de 2023
Comentada: mayu
el 10 de Mzo. de 2023
App Designerを使っていまして、コンポーネント名?が連番のボタンを複数設置しており、一括でEnable処理をしたいと思っています。
連番なのでforでまとめて処理できないかなと思い、以下のように書いてみましたがうまくいきませんでした。
Button_05 ~ Button_25
for i = 5:25
app.(Button_0 + i).Enable = 'on';
end
「+」がダメなのかなと思って「&」とかに変えてみたものの、うまくいきませんでした。
「関数または変数 'Button_0' が認識されません。」
app.Button_05.Enable = 'on';
app.Button_06.Enable = 'on';
app.Button_07.Enable = 'on';
app.Button_08.Enable = 'on';
・・・
のようにずらずら書きたくないです。
名前がバラバラだったら諦めて書くのですが、連番だったら効率化できるんじゃないかと思い質問させていただきました。
どのようになおしたら上記のことが実現可能になるか、for以外でも、上記のことを効率的に処理できる方法あれば、ご教示いただけますと幸いです。
どうぞよろしくお願いいたします。
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 9 de Mzo. de 2023
Editada: Atsushi Ueno
el 9 de Mzo. de 2023
"Button_0"の様にString型にすれば、エラー無く期待通りに動きます。(古いリリースでは構造体のフィールドにString型が認められなかった為コメントの様にchar型を使う必要がありますが、新しいリリースではString型でも問題ありません)
for文のイテレータに"i"を使うと、iの中身(数値)がString型に変換される際に複素数(0+1i)と認識される可能性があります。他の変数名に変更する事をお勧めします。
for k = 5:25
app.("Button_0" + k).Enable = "on";
end
7 comentarios
Atsushi Ueno
el 10 de Mzo. de 2023
>appの使い方について
上記のオンラインコースでオブジェクト指向プログラミングを学べば、AppDesignerで作成したものが全てappクラス内に作られている事が分かります。
>私の知る限り関数を使う際の引数は使うものしか入れないと思うので違和感があります。。
⇒MATLABはオブジェクト自身も省略せず絶対的に示す文法を採用したのですが、私もちょっと違和感があります。
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!