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! :)

 Risposta accettata

Stephen23
Stephen23 il 1 Ott 2017
Modificato: Stephen23 il 1 Ott 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 Commenti

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.

Accedi per commentare.

Più risposte (0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by