for ループの全データ取得

조회 수: 19 (최근 30일)
Takahiro INOUE
Takahiro INOUE 2019년 11월 28일
답변: Shunichi Kusano 2019년 11월 29일
お世話になっております。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에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!