フィルターのクリア

converting a struct array fildname to an array

1 回表示 (過去 30 日間)
Payam Parsinejad
Payam Parsinejad 2012 年 3 月 14 日
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,

回答 (2 件)

Thomas
Thomas 2012 年 3 月 14 日
col = [o(:).color];
new_color=reshape(col,3,[])'
This should help
  2 件のコメント
Payam Parsinejad
Payam Parsinejad 2012 年 3 月 14 日
Thanks Thomas; that does it :)
Thomas
Thomas 2012 年 3 月 14 日
Please consider accepting the answer so that others know that a solution has been obtained..

サインインしてコメントする。


Payam Parsinejad
Payam Parsinejad 2012 年 3 月 14 日
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 件のコメント
Thomas
Thomas 2012 年 3 月 14 日
X = [1,3,5,2]
for i=1:length(X)
object(i).x=X(i);
end
Payam Parsinejad
Payam Parsinejad 2012 年 3 月 14 日
Hi Thomas,
Can I do such process without using for loop?!
Thanks,
Payam

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by