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

조회 수: 19 (최근 30일)
taichi muto
taichi muto 2022년 9월 12일
댓글: taichi muto 2022년 9월 13일
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

채택된 답변

Hernia Baby
Hernia Baby 2022년 9월 13일
> 行列の要素ではなく、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
taichi muto
taichi muto 2022년 9월 13일
ご回答ありがとうございます。
また、例を加えて分かりやすく説明していただきありがとうございます。
私が出したコードで表現すると、
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 を得られるということですね。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 プログラミング에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!