How to convert a table into a structure

15 Ansichten (letzte 30 Tage)
Blue
Blue am 31 Jul. 2019
Kommentiert: Blue am 1 Aug. 2019
Hi,
Lets say I have a table that looks like this:
Name = {'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'}.';
Month = [1, 2, 3, 1, 2, 3, 1, 2, 3].';
Lat = [49, 50, 51, 52, 53, 54, 49, 50, 51].';
Lon = [-99, -100, -101, -102, -103, -104, -99, -100, -101,].';
A = [0.1, 0.2 , 0.3, 1.1, 0.9, 1.0, 0.1, 0.2 , 0.3,].';
T = table(Name, Month, Lat, Lon, A);
How would I convert this table into a 1 x 3 structure with the following shape ?
Name Month Lat Lon A
A 1x3 double 1x3 double 1x3 double 1x3 double
B 1x3 double 1x3 double 1x3 double 1x3 double
C 1x3 double 1x3 double 1x3 double 1x3 double

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 1 Aug. 2019
t2 = varfun(@(x){x(:)'},T,'GroupingVariables','Name');
TinStrr = t2(:,[1,3:end]);
TinStrr.Properties.VariableNames = T.Properties.VariableNames;
S_out = table2struct(TinStrr);

Weitere Antworten (1)

KSSV
KSSV am 1 Aug. 2019
Read about table2struct.
S = table2struct(T)
  3 Kommentare
KSSV
KSSV am 1 Aug. 2019
idx = strcmp(T.Name,'A') ;
S = table2struct(T(idx,:))
Blue
Blue am 1 Aug. 2019
Thank you for your input but I am trying to do something more complicated. More akin to a nested structure I guess where I would have 1 structure containing 3 structures (1 for each name as outlined above)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by