Get structure elements across fields
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Oyeniyi
am 28 Dez. 2014
Kommentiert: Oyeniyi
am 28 Dez. 2014
I have a 1-by-n structure with -m- fields. All the elements of the structure are single numbers.
I want to get all the elements across any particular 'row' of the structure as a vector.
For example, I need to access [struct(n).field1 struct(n).field2 ... struct(n).fieldm] without having to go through the individual fields.
0 Kommentare
Akzeptierte Antwort
Mohammad Abouali
am 28 Dez. 2014
Bearbeitet: Mohammad Abouali
am 28 Dez. 2014
% Making sample data
s(1).field1=1;
s(1).field2=2;
s(1).field3=3;
s(2).field1=4;
s(2).field2=5;
s(2).field3=6;
% converting to regular array.
sTable=struct2table(s);
sArray=table2array(sTable)
sArray =
1 2 3
4 5 6
alternatively, you can also use struct2cell and cell2mat
sCell=struct2cell(s);
sCell=squeeze(sCell);
sArray=cell2mat(sCell)'
sArray =
1 2 3
4 5 6
Weitere Antworten (1)
Azzi Abdelmalek
am 28 Dez. 2014
Bearbeitet: Azzi Abdelmalek
am 28 Dez. 2014
Another way:
d=struct('f1',num2cell(randi(10,1,10)),'f2',num2cell(randi(10,1,10)),'f3',num2cell(randi(10,1,10)))
n=4
e=d(n)
nf=fieldnames(d)
for k=1:numel(nf)
v(k,1)=e.(nf{k})
end
Siehe auch
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!