How to access sub-properties from an object array?

So I have an array of objects and I ideally want to return an array of sub-properties two layers deep (if that makes sense). For example, I would like:
array=person.eye.color
to return all of the person eye colors into one array. I can return an array of eye objects but not the eye colors themselves.
I get the error: "Expected one output from a curly brace or dot indexing expression, but there were 3 results."
I'm not a very experienced programmer or very familiar with Matlab's structure, any advice? Thanks.

回答 (1 件)

per isakson
per isakson 2018 年 10 月 27 日

0 投票

Assuptions
  • person is the array of objects
  • person has a property named, 'eye', the value of which is an eye-object
Answer
There is no one-liner that does what you want. You have to loop over all persons of the array.

2 件のコメント

Walter Roberson
Walter Roberson 2018 年 10 月 27 日
array = arrayfun(@(P) P.eye.color, person); %hidden loop
Aidan K
Aidan K 2018 年 10 月 28 日
Thanks. Seemed to do the trick.

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

カテゴリ

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

製品

リリース

R2018b

質問済み:

2018 年 10 月 27 日

コメント済み:

2018 年 10 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by