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

1 Ansicht (letzte 30 Tage)
Shumpei Hosokawa
Shumpei Hosokawa am 24 Dez. 2021
Kommentiert: Atsushi Ueno am 29 Dez. 2021
お疲れ様です.
表題の件ですが,現在シミュレーションプログラムを書いていて,パラメータを変更し繰り返し実行し値を格納するという作業を行いたいのですが,以下のコードでは行列の形式が合わないというエラーを吐きます.
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 Kommentare
Shumpei Hosokawa
Shumpei Hosokawa am 25 Dez. 2021
ありがとうございます.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 am 25 Dez. 2021
それもSpin_Top_Sim_1の処理がなければ有り得ない動作なので、Spin_Top_Sim_1がkの値を変更していると断定できます。

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Shumpei Hosokawa
Shumpei Hosokawa am 29 Dez. 2021
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 Kommentar
Atsushi Ueno
Atsushi Ueno am 29 Dez. 2021
それもSpin_Top_Sim_1の処理がなければ有り得ない動作なので、Spin_Top_Sim_1がvo_measure1の値を変更(初期化)していると断定できます。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!