Hi, I encountered a Matlab problem again. I want to access all struct field elements, which is an element of a cell array, at one time, not using loop. Such as:
s{1} = struct('ID',1,'other field',...);
s{2} = struct('ID',2,'other field',...);
I want to access all ID values in the cell s, I write the code like this:
IDs = [s{:}.ID];
This does not work, how to access all ID values not using for loop, please?

2 件のコメント

Stephen23
Stephen23 2018 年 5 月 23 日
If you used just one non-scalar structure (rather than lots of scalar structure in a cell array) then the solution would be very simple:
S(1) = struct('ID',1,'other field',...);
S(2) = struct('ID',2,'other field',...);
[S.ID]
Simpler, more efficient code through better data design. Why make your code more complex than this?
li yan
li yan 2018 年 5 月 23 日
Thank for you answer.
I'm doing information fusion with matlab, the track numbers vary dynamic, a cell struct is convenient to store track information.

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

 採用された回答

Ameer Hamza
Ameer Hamza 2018 年 5 月 23 日

1 投票

You can do this in Two steps
temp = [s{:}];
allIDValues = [temp.ID];

2 件のコメント

Stephen23
Stephen23 2018 年 5 月 23 日
Note that in Ameer Hamza's answer the first line of code converts your cell array of scalar structures into one non-scalar structure. If you had stored your data in a non-scalar structure in the first place, then you would not need this extra step.
li yan
li yan 2018 年 5 月 23 日
thank you for your answer. I will try it

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeStructures についてさらに検索

質問済み:

2018 年 5 月 23 日

コメント済み:

2018 年 5 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by