- ベストアンサー
MATLABのfor文の使い方について
MATLAB(というかプログラム)初心者です 下記を教えてください よろしくお願いいたします 「つくりたいプログラム」 y1=[A B C] y2=[D E F] ・ ・ ・ y200=[AA BB CC] 上記のような200個くらいある行列に同じ操作をしたいです そこでいちばん簡単な構造を考えました ////////////////////// y1=[A B C] y2=[D E F] for i=1:2 Yi=yi*5 end ///////////// 成功イメージは Y1=[5A 5B 5C] Y2=[5D 5E 5F] となってほしいのですが回りません・・・ yiの定義のしかたがわからず困っております 初歩的な質問かもしれませんが教えてくださいよろしくお願いいたします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
y1, y2 などを yi なんかで参照できません. セルを使って, y{1} = 行列; y{2} = 行列; とかいれて for i=1:2 Y{i} = 5*y{i}; end とか
その他の回答 (1)
- cametan_42
- ベストアンサー率62% (162/261)
う~ん、良く分からん(笑)。 A、B、Cって何でしょ?実際は数値? 僕はMATLABなんて高価で買えないんで、互換ソフトと言われるOctave GNU Octave: http://www.gnu.org/software/octave/ 使って試してみたんですが、例えば、 octave> Y = [1 2 3; 4 5 6] Y = 1 2 3 4 5 6 とかなってれば、そのまま、 octave> 5 * Y ans = 5 10 15 20 25 30 となって目的達成される筈なんですけどね。繰り返し構文なんて使う必要無いですよ。 例えば、 octave> y1 = [1 2 3] y1 = 1 2 3 octave> y2 = [4 5 6] y2 = 4 5 6 なんて設定してたら、Yを作るには、 octave> Y = [y1; y2] Y = 1 2 3 4 5 6 とすれば済みますし。もうこれで5倍すれば良いのでは? 要素(と言うか行別)の取り出しは、 octave> Y(1, :) ans = 1 2 3 octave> Y(2, :) ans = 4 5 6 とすれば済みますしね。
お礼
cametan_42様 ありがとうございます GNU Octaveさっそくインストールしました これで部屋でもプログラムを勉強することができます 私も大学でMATLABを利用することになり 高価でとても個人では所有できません・・・ A B C等は実際には数値が入ります 参考のプログラムも書いていただきありがとうございました 非常に勉強になります
お礼
m0r1_2006さま ありがとうございます できました! y{1} = [1 2 3] y{2} = [4 5 6] for i=1:2 Y{i} = 5*y{i} end 非常に勉強になります 私の質問に答えていただく時間をつくっていただき ありがとうございました これを基にプログラムを作ってみます