for ループの全データ取得

110 次查看(过去 30 天)
Takahiro INOUE
Takahiro INOUE 2019-11-28
お世話になっております。TDUの井上です.
下記のコードにてforループの100回の全データをすべて取得したいのですが,うまくできません.
(100回目のデータしか取得できません)
ご指導ください.
L1=1;L2=1;L3=1; % 変数宣言
theta1=0;theta2=0;theta3=0; % 変数宣言
posi3=[0; 0; L3; 1]; % 手先位置(手先座標系)
for i=1:100
theta1=theta1+0.1;theta2=theta2+0.1;theta3=theta3+0.1;
trans01=[cos(theta1) -sin(theta1) 0 0; % 3×3行列
sin(theta1) cos(theta1) 0 0;
0 0 1 0;
0 0 0 1];
trans12=[cos(theta2) 0 sin(theta2) 0; % 3×3行列
0 1 0 0;
-sin(theta2) 0 cos(theta2) L1;
0 0 0 1];
trans23=[cos(theta3) 0 sin(theta3) 0; % 3×3行列
0 1 0 0;
-sin(theta3) 0 cos(theta3) L2;
0 0 0 1];
posi0=trans01*trans12*trans23*posi3;
end

采纳的回答

Shunichi Kusano
Shunichi Kusano 2019-11-29
こんにちは
posi0が、100回分取得したいデータでしょうか。あらかじめ、100回分のデータを格納する配列を作っておいて、そこに各ループごとにposi0データを突っ込んでいくという流れでデータを保存します。
必要なところだけ書きますと
posi0 = zeros(4,100); % あらかじめ配列を用意縦(行方向)が一回分のデータ、横(列方向)にforループ文だけ
for i = 1:100
...その他の処理...
posi0(:,i) = trans01*trans12*trans23*posi3;
end
でposi0に必要なデータを保存できると思います。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 プログラミング 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!