extract data from cell array

1 回表示 (過去 30 日間)
John
John 2022 年 1 月 24 日
編集済み: John 2022 年 1 月 25 日
%Lets say I have a multi-element cell array with different variables/feilds within
c{1,1}.name = 'Tom'; c{1,1}.age = 48;
c{2,1}.name = 'Bob'; c{2,1}.age = 24;
c{3,1}.name = 'Jim'; c{3,1}.age = 12;
%I would like to create a vector, vec_age = [48 24 12]; from this data set
% without writing the loop
for i =1:length(c), vec_age(i) = c{i,1}.age; end
% Something nice would be similar to how you pull a vector from a matrix, v = m(:,3);
% in the form of vec_age = c{:,1}.age; ... but alas this does not work
% Thank you in advance for suggestion to a small problem that has been nagging me.

採用された回答

Walter Roberson
Walter Roberson 2022 年 1 月 24 日
c{1,1}.name = 'Tom'; c{1,1}.age = 48;
c{2,1}.name = 'Bob'; c{2,1}.age = 24;
c{3,1}.name = 'Jim'; c{3,1}.age = 12;
vec_age = cellfun(@(S) S.age, c)
vec_age = 3×1
48 24 12
This does not assume that the structs all have the same fields in the same order, which Benjamin's answer assumes.
  1 件のコメント
John
John 2022 年 1 月 24 日
編集済み: John 2022 年 1 月 25 日
I oversimplified my case as I was trying to be concise. The data set I have is not of my making and the data types within are disparate. This solution works well. Thank you!

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

その他の回答 (0 件)

カテゴリ

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

タグ

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by