Putting a matrix into an array

Hi all!
Firstly, I am not exactly sure this is possible, so forgive me if I am asking a redundant question.
I have a series of objects that are same in structure, and I want to group them into an array to keep them together. However, upon initializing such an object with a function, it returns a 2-D matrix, and the program gives me an error: "Subscripted assignment dimension mismatch.". This is the code:
T(1) = makehgtform('translate', [1 1 0]);
T(2) = makehgtform('translate', [1 -1 0]);
T(3) = makehgtform('translate', [-1 1 0]);
T(4) = makehgtform('translate', [-1 -1 0]);
I hope you understand what I'm trying to do, and what the problem is.
Thanks in advance! :)

 Accepted Answer

Stephen23
Stephen23 on 1 Oct 2017
Edited: Stephen23 on 1 Oct 2017
Into a 3D array:
T = nan(4,4,N);
T(:,:,1) = makehgtform('translate', [1,1,0]);
T(:,:,2) = makehgtform('translate', [1,-1,0]);
etc
Or a cell array:
T = cell(1,N);
T{1} = makehgtform('translate', [1,1,0]);
T{2} = makehgtform('translate', [1,-1,0]);
etc
Where N is the number of matrices you will have.

3 Comments

I get the exact same error.
I get the error: "Cell contents assignment to a non-cell array object.".
@Filip Davidovic: you need to preallocate the matrix or cell array, as shown in my answer.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!