for文の書き方について
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
マトラボ以前の質問と思うので恐れ入ります。。。
btn1 = app.Btn1Button.Value;
btn2 = app.Btn2Button.Value;
btn3 = app.Btn3Button.Value;
sldr1 = app.Slider1.Value;
sldr2 = app.Slider2.Value;
sldr3 = app.Slider3.Value;
nbox1 = app.EditField1.Value;
nbox2 = app.EditField2.Value;
nbox3 = app.EditField3.Value;
これを短くしたくて、
for i = 1:3
("btn" + i) = app.("Btn" + i + "Button").Value;
("sldr" + i) = app.("Slider" + i).Value;
("nbox" + i) = app.("EditField" + i).Value;
end
と書いたら、
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1466437/image.png)
'=' での解析エラー:使用法は、無効な MATLAB 構文になる可能性があります。
と言われるのですが、どう書いたらいいのでしょうか😓
左側がおかしいのかなと思って、括弧やクォーテーションを外したり変えてみても変わりませんでした。
よろしくお願いいたしますm(__)m💦
0 commentaires
Réponse acceptée
Hiro Yoshino
le 28 Août 2023
アイディアを2つお渡しします:
[1] cell 配列を使って情報を保存すると楽かなと思います。
それと、string ベクトルの結合ですが、"i" が数値なのでそのまま結合出来ないと思います。num2str で変換しておきます。
app.Btn1Button.Value = 1;
app.Btn2Button.Value = 2;
app.Btn3Button.Value = 3;
for i = 1:3
btn{i} = app.("Btn" + num2str(i) + "Button").Value;
end
取り出し
btn{:}
x = rand(10);
for i = 1:2
sampleStr = sprintf("x*x + %f",i) % この string を評価することができる
mysample{i} = eval(sampleStr);
end
確認:
mysample{:}
このあたりの変数の取り扱いが???な場合は、基礎が足らないので "MATLAB 基礎" を受講された方が良いと思います。
5 commentaires
Hiro Yoshino
le 31 Août 2023
最初は少し苦労すると思いますが耐えてみてください。徐々に慣れていくと思います。
まずは関数のドキュメンテーションを見て、それ通りに数値を与えてみると問題点が浮かんでくるかと思います。調べてみて分からないことがあれば、Answers が味方してくれますので。
まずは自分で調べてみて、仮説をもってご質問されると回答が付きやすいと思います。興味深い質問には様々な人がコメントをしてくれる傾向がありますので!
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing 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!