Borrar filtros
Borrar filtros

converting a struct array fildname to an array

1 visualización (últimos 30 días)
Payam Parsinejad
Payam Parsinejad el 14 de Mzo. de 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,

Respuestas (2)

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

Iniciar sesión para comentar.


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

Iniciar sesión para comentar.

Categorías

Más información sobre Structures 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!

Translated by