How do I store matrix solutions from a loop into another matrix?

1 view (last 30 days)
How do I populate the T matrix with Tr matrices for each n=1:6, so that I can access the elements with T(3:3;3:3,2)?
T=zeros(6,1);
for n= 1:6
Tr = [c(n) -s(n)*ca(n) s(n)*sa(n) a(n)*c(n);...
s(n) c(n)*ca(n) -c(n)*sa(n) a(n)*s(n);...
0 sa(n) ca(n) d(n);...
0 0 0 1 ] ;
T(:,:,n)=Tr;

Accepted Answer

dpb
dpb on 1 Dec 2015
T has to be size of Tr in each plane; not sure where you got the 6,1 from...
T=zeros(4,4,6);
for n=1:6
T(:,:,n)=[c(n) -s(n)*ca(n) s(n)*sa(n) a(n)*c(n);...
s(n) c(n)*ca(n) -c(n)*sa(n) a(n)*s(n);...
0 sa(n) ca(n) d(n); ...
0 0 0 1 ];
  2 Comments
Lorenzo
Lorenzo on 1 Dec 2015
great, it works. I was thinking as T as a 6x1 array with matrix elements in it, rather than a 3D matrix.
Thanks!
dpb
dpb on 1 Dec 2015
"T as a 6x1 array with matri[ces] in it..."
That would be a cell array, then...
T{n,1}=RHS;
instead. See
doc cell % and background info on cell arrays for details

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!