How to construct an array with varying dimension?
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
ramin bba
el 30 de Jun. de 2014
Comentada: ramin bba
el 30 de Jun. de 2014
I want to save some data using a "for loop". Within each iteration, I will get a 2D matrix (which I want to save). the size of the matrices is NOT the same, i.e. first 10*10, then 23*23, next 20*20 and so on (no pattern between the sizes). I clearly cannot use a 3D matrix to save the data since the third dimension is not constant. I cannot save them manually/separately either since there is a lot of 2D matrices (this is actually why i am putting it in a for loop). I also do NOT know the size of the largest 2D matrix.
what can I use to do the above? cell? structure?
tnx in advance
0 comentarios
Respuesta aceptada
Image Analyst
el 30 de Jun. de 2014
Yes. Use a cell array. That's what it's meant for. See the FAQ for a good explanation and some good illustrative examples: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
Más respuestas (1)
Geoff Hayes
el 30 de Jun. de 2014
A cell array would work well for this problem. Since you have a for loop, you have an idea of how many matrices you will need to save. Try the following:
% size the cell array where n is the number of iterations in the for loop (and
% the number of matrices to save)
cellArray = cell(n,1);
% iterate
for k=1:n
% do stuff
% save kth matrix A to cell array
cellArray{k} = A;
end
And that is it - all matrices will be saved to the cellArray object.
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!