for ループの全データ取得

17 ビュー (過去 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 Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!