MATLAB: Cell Array and Matrix Multiplication

cell arrayfor loopmatrixmatrix manipulationmultiplicaion

Here is my question/problem:
I need to multiply several 4×4 matrices together in order based on some data. I have a loop that constructs a 1 x n cell array with each cell being a 4×4 matrix.
for i = 1:n
ct = cos(dh.t(i+1));
st = sin(dh.t(i+1));
cf = cos(dh.f(i));
sf = sin(dh.f(i));
a = dh.a(i);
d = dh.d(i+1);
A = [ct , -st, 0, a;
cf*st, cf*ct, -sf, -sf*d;
sf*st, sf*ct, cf, cf*d;
0 , 0, 0, 1];
B(1,i) = {A};
end
A is the matrix for each iteration i and is stored in the cell array B. I need each of the matrices in B to be multiplied by each other in order and return a single 4×4 matrix ( i.e. T = B{1,1}*B{1,2}*B{1,3}*…*B{1,n} ). I am not sure how to do this for a general case n. I am not even sure if what I did above is the best way to do this problem, but that's what I have done so far.
Thanks for any help.

Best Answer

If everything is numeric, do you really need to use cell arrays (which then need to be "unpacked" to do the numeric calculation again)? Or could you do something like:
B = zeros(4,4,n);
T = eye(4);
for i = 1:n
blah blah
B(:,:,i) = A;
T = T*B(:,:,i);
end
It is not clear what, if any, of the intermediate results you need to ultimately store, so you may not even to keep B at all.