Assign multi-dimension array to data structure array without for-loop

6 visualizaciones (últimos 30 días)
I want to remove for-loop in order to assign array to data structure array.
S(1:3) = struct('a', zeros(3,3));
tmp = random('Normal', 0, 1, 3, 3, 3);
for ie = 1:3
S(ie).a = tmp(:,:,ie);
end
Here, I want to obtain S(:).a without for-loop. In addition, S(:).a is updated sometimes.
Many Thanks!

Respuestas (2)

Matt Fig
Matt Fig el 4 de Mayo de 2011
For example:
clear T S
T = rand(3,3,3);
S(1:3) = struct('a', mat2cell(T,3,3,[1 1 1]));
isequal(T(:,:,2),S(2).a) % just to check...

Daehung Kang
Daehung Kang el 4 de Mayo de 2011
If I have other fields in S(:), it should have following error. dissimilar structure.
Also, I want to update S(:).a sometimes, not declaration of structure field.
Thanks again.
  2 comentarios
Oleg Komarov
Oleg Komarov el 4 de Mayo de 2011
The you can't do it w/o a loop.
Matt Fig
Matt Fig el 4 de Mayo de 2011
These are details you left out of your original question, and they change the outcome. I did, however, answer your original question...

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by