for文で行列全体を1つの要素として繰り返す

43 visualizzazioni (ultimi 30 giorni)
taichi muto
taichi muto il 12 Set 2022
Commentato: taichi muto il 13 Set 2022
for文を使って i 番目の行列を求めようとしています。
i 番目のTh1,Th2,Th3を使って i 番目のJ(2×3行列)を求めたいです。
行列の要素ではなく、2×3の行列全体を i 番目と指定することはできますか。
よろしくお願いいたします。
for i=1:n
if 0<=c_q(i,2) && c_q(i,2)<=360
Th1(i,1) = pi+pi/2+a_h_step(i,2)+q0hr(i,2);
Th2(i,1) = -q0kr(i,2)-a_k_step(i,2);
Th3(i,1) = pi/2-(a_a_step(i,2)+q0ar(i,2));
J = [
-L1*sin(Th1(i,1))-L2*sin(Th1(i,1)+Th2(i,1))-L3*sin(Th1(i,1)+Th2(i,1)+Th3(i,1)), -L2*sin(Th1(i,1)+Th2(i,1))-L3*sin(Th1(i,1)+Th2(i,1)+Th3(i,1)), -L3*sin(Th1(i,1)+Th2(i,1)+Th3(i,1));
L1*cos(Th1(i,1))+L2*cos(Th1(i,1)+Th2(i,1))+L3*cos(Th1(i,1)+Th2(i,1)+Th3(i,1)), L2*cos(Th1(i,1)+Th2(i,1))+L3*cos(Th1(i,1)+Th2(i,1)+Th3(i,1)), L3*cos(Th1(i,1)+Th2(i,1)+Th3(i,1));
];
end
end

Risposta accettata

Hernia Baby
Hernia Baby il 13 Set 2022
> 行列の要素ではなく、2×3の行列全体を i 番目と指定することはできますか。
cell型を使えば可能です。
簡単に作ってみましょう。
for ii = 1:3
J{ii} = randi(ii,2,3)
end
J = 1×1 cell array
{2×3 double}
J = 1×2 cell array
{2×3 double} {2×3 double}
J = 1×3 cell array
{2×3 double} {2×3 double} {2×3 double}
ここで1番目と2番目の J の値を見てみます。
J{1}
ans = 2×3
1 1 1 1 1 1
J{2}
ans = 2×3
1 2 2 1 2 2
  1 Commento
taichi muto
taichi muto il 13 Set 2022
ご回答ありがとうございます。
また、例を加えて分かりやすく説明していただきありがとうございます。
私が出したコードで表現すると、
J{i} = [
-L1*sin(Th1(i,1))-L2*sin(Th1(i,1)+Th2(i,1))-L3*sin(Th1(i,1)+Th2(i,1)+Th3(i,1)), -L2*sin(Th1(i,1)+Th2(i,1))-L3*sin(Th1(i,1)+Th2(i,1)+Th3(i,1)), -L3*sin(Th1(i,1)+Th2(i,1)+Th3(i,1));
L1*cos(Th1(i,1))+L2*cos(Th1(i,1)+Th2(i,1))+L3*cos(Th1(i,1)+Th2(i,1)+Th3(i,1)), L2*cos(Th1(i,1)+Th2(i,1))+L3*cos(Th1(i,1)+Th2(i,1)+Th3(i,1)), L3*cos(Th1(i,1)+Th2(i,1)+Th3(i,1));
];
とすれば、i 番目の J を得られるということですね。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrix Indexing in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!