プログラムのパラメー​タをforで変更し実​行した後値を格納した​い

4 次查看(过去 30 天)
Shumpei Hosokawa
Shumpei Hosokawa 2021-12-24
评论: Atsushi Ueno 2021-12-29
お疲れ様です.
表題の件ですが,現在シミュレーションプログラムを書いていて,パラメータを変更し繰り返し実行し値を格納するという作業を行いたいのですが,以下のコードでは行列の形式が合わないというエラーを吐きます.
vo_vector = zeros(3,10);
for i = 1:10
w = [0 0 i]';
Spin_Top_Sim_1
vo_vector(:,i) = vo;
end
Spin_Top_Sim_1というのが件のシミュレーションのプログラムです.w=[0 0 i]とし,ループを進めるごとに別のパラメータをSpin_Top_Sim_1に与えプログラムを実行すると毎回異なるvoを出力します.そのvoをvo_vector(3×10行列)に繰り返し回数の10回分格納したいのですが,どのようにループを書き換えればよいでしょうか.ご教授お願いします.
  5 个评论
Shumpei Hosokawa
Shumpei Hosokawa 2021-12-25
ありがとうございます.iではなくkでループを作ってみたところSpin_Top_Sim_1にwの値をkで変化させSpin_Top_Sim_1からwの値ごとに異なるvoを出力するようにはなりました.
vo_vector = zeros(3,10);
for k = 1 : 10
w = [0 0 k]';
Spin_Top_Sim_1
vo_vector(:,k) = vo
end
しかし,出力した結果をvo_vector(:,k)で3x10行列にまとめたいのですが,
vo_vector =
0 0 4.1435
0 0 -2.5313
0 0 23.7175
上のように,3列目にのみ値が入りループの度に3列目の値だけ更新されてしまいます.k=1の時には1列目,k=2の時には2列目...と値が入るようにしたいのですがどのようにすればよいでしょうか.
Atsushi Ueno
Atsushi Ueno 2021-12-25
それもSpin_Top_Sim_1の処理がなければ有り得ない動作なので、Spin_Top_Sim_1がkの値を変更していると断定できます。

请先登录,再进行评论。

采纳的回答

Shumpei Hosokawa
Shumpei Hosokawa 2021-12-29
Spin_Top_Sim_1でkが値を変更していることが確認できました.またforループを書き直して実行したのですが,値を格納したところループは回るのですが,次のような結果になりました.毎回の値は記録されるのですがそれ以外の列が0列になっています.
count_w = 30; % 1 ~ 30
uLINK_1(1).w = [0 0 count_w]'; % 条件をSpin_Top_Sim_1に与える,本来は当該プログラムの初期条件
vo_measure1 = zeros(3,5); % 空行列
for l= 1:5
psi = pi/180 * l;
theta = pi/180 * l;
phi = pi/180 * l;
Spin_Top_Sim_1
vo_measure1(:,l) = uLINK_1(1).vo
end
上の通りのプログラムを書きましたところ,結果が以下の通りになりました.
vo_measure1 =
1.0e+03 *
0 0 0 0 2.4086
0 0 0 0 1.0186
0 0 0 0 0.2107
上の結果はl = 5のときで5列目にのみデータが入ってしまいました.l = 4の時には4列目にのみデータが入ってしまいます.forループでこのように値が入る場合どこを修正すればよいでしょうか.これもSpin_Top_Sim_1の処理によるものだと考えられますでしょうか.例えばSpin_Top_Sim_1内の記述でuLINK_1(1).voを初期条件として用いているなどによりますでしょうか.
  1 个评论
Atsushi Ueno
Atsushi Ueno 2021-12-29
それもSpin_Top_Sim_1の処理がなければ有り得ない動作なので、Spin_Top_Sim_1がvo_measure1の値を変更(初期化)していると断定できます。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 ループと条件付きステートメント 的更多信息

产品


版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!