converting a struct array fildname to an array
Afficher commentaires plus anciens
Hi all,
I'm having a struct array of arrays in which I store an array to one of its fieldnames:
o(1).color = [100, 256, 60]
o(2).color = [100, 100, 0]
o(3).color = [100, 0, 60]
and I want to extract all the values in "color" fieldname into a an array forming:
COLOR = [[100, 256, 60] ; [100, 100, 0] ; 100, 0, 60]]
the problem is when I use:
COLOR = [o(:).color];
I get:
COLOR = [100, 256, 60, 100, 100, 0, 100, 0, 60]
which is not what I want. any solution?
Thanks,
Réponses (2)
Thomas
le 14 Mar 2012
col = [o(:).color];
new_color=reshape(col,3,[])'
This should help
2 commentaires
Payam Parsinejad
le 14 Mar 2012
Thanks Thomas; that does it :)
Thomas
le 14 Mar 2012
Please consider accepting the answer so that others know that a solution has been obtained..
Payam Parsinejad
le 14 Mar 2012
another sort of related question:
I have a vector, X, holding some values:
X = [1,3,5,2] Also I have a struct array, objects:
objects(1).x =#
objects(2).x =#
objects(3).x =#
objects(4).x =#
what I want to do is to assign all the values (or some) in X to their corresponding index number in objects.x. i.e.
X -> objects.x
so that I have: objects(1).x =1 objects(2).x =3 objects(3).x =5 objects(4).x =2
any solution?
Thanks, Payam
2 commentaires
Thomas
le 14 Mar 2012
X = [1,3,5,2]
for i=1:length(X)
object(i).x=X(i);
end
Payam Parsinejad
le 14 Mar 2012
Catégories
En savoir plus sur Cell Arrays dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!