Filter löschen
Filter löschen

converting a struct array fildname to an array

1 Ansicht (letzte 30 Tage)
Payam Parsinejad
Payam Parsinejad am 14 Mär. 2012
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,

Antworten (2)

Thomas
Thomas am 14 Mär. 2012
col = [o(:).color];
new_color=reshape(col,3,[])'
This should help
  2 Kommentare
Payam Parsinejad
Payam Parsinejad am 14 Mär. 2012
Thanks Thomas; that does it :)
Thomas
Thomas am 14 Mär. 2012
Please consider accepting the answer so that others know that a solution has been obtained..

Melden Sie sich an, um zu kommentieren.


Payam Parsinejad
Payam Parsinejad am 14 Mär. 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 Kommentare
Thomas
Thomas am 14 Mär. 2012
X = [1,3,5,2]
for i=1:length(X)
object(i).x=X(i);
end
Payam Parsinejad
Payam Parsinejad am 14 Mär. 2012
Hi Thomas,
Can I do such process without using for loop?!
Thanks,
Payam

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by