how to get struct array field as a vector?

27 Ansichten (letzte 30 Tage)
Mr M.
Mr M. am 12 Okt. 2015
I have a struct array, and a field like data.age and I want to get the ages as a vector v for which I can write for example : v(v>18), because data.age(data.age>18) gives me an error message.

Akzeptierte Antwort

Thorsten
Thorsten am 12 Okt. 2015
age = [data.age];
agegt18 = age(age>18);

Weitere Antworten (2)

Walter Roberson
Walter Roberson am 12 Okt. 2015
v = [data.age];
data(v>18)
Or more compactly,
data([data.age]>18)
  2 Kommentare
Mr M.
Mr M. am 12 Okt. 2015
Thanks, and what if the filed contains strings, and I want to select elements for which string equals to a given string? Something like this: data({data.gender}=='male')
Thorsten
Thorsten am 12 Okt. 2015
Bearbeitet: Thorsten am 12 Okt. 2015
Use
data(strcmp({data.gender}, 'male'))

Melden Sie sich an, um zu kommentieren.


Tin Aye Chit Chit
Tin Aye Chit Chit am 15 Mai 2019
Please check the code, that code can't give me the answer I want.
for i = 1:1:n
V=index{i};
for j = 1:1:size(V,2)
S{i,j}.e = nodeArch.node(V(1,j)).energy;
S{i,j}.t = nodeArch.node(V(1,j)).type;
S{i,j}.g = nodeArch.node(V(1,j)).G;
end
end
The S have more column than V. What is wrong in that code?

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by