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

39 Ansichten (letzte 30 Tage)
taichi muto
taichi muto am 12 Sep. 2022
Kommentiert: taichi muto am 13 Sep. 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

Akzeptierte Antwort

Hernia Baby
Hernia Baby am 13 Sep. 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 Kommentar
taichi muto
taichi muto am 13 Sep. 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 を得られるということですね。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu プログラミング finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!