dポイントプレゼントキャンペーン実施中!

私はMATLAB初心者なのですが,行列の抽出ができなくて困っております.

やりたいこととしては,for文を用いて行列x_r(41×3行列)がode45によって次々と求められるので,そのつどそのつど(i=1のときから1=10のときまで)でx_r(1)の値を新しい行列pに保存していきたいのですが上手くいきません.わかる方がいらっしゃいましたらご教授お願いします.
for i=1:10
[t,x_r]=ode45('...',[0.01],x_r);

.....


p(:,i)=x_r(:,1); …(1)

.....

end
上の(1)のように行列pにi=1~10までのときのそれぞれのx(i)(41×1行列)の値を保存しようとしましたがうまくいきません.

p=(x(1)_i=1,x(1)_i=2,x(1)_i=3,・・・・,x(1)_i=10) (41×10行列)(やりたいことのイメージ)

エラーメッセージは「添字による代入の次元が一致しません。」と出ています.

A 回答 (1件)

MATLABではよくわからんが,Octave3.4.3なら


n=41;
m=3;
p=zeros(n,10);
for i=1:10
x_r=rand(n,m);
p(:,i)=x_r(:,1);
end;
p
で問題なく動いてるよ。
    • good
    • 1
この回答へのお礼

わざわざ確認していただきありがとうございます.MATLABでもf272さんのプログラムはエラーなく動くのでおそらくそのほかに問題があるのだと思います.もう一度始めから見直してみたいと思います.どうもありがとうございました.

お礼日時:2012/10/01 22:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!