Extract fields from struct and convert to excel file

11 Ansichten (letzte 30 Tage)
Jonas Bender
Jonas Bender am 10 Okt. 2022
Bearbeitet: Eric Delgado am 14 Okt. 2022
Dear community,
I create a struct with numerous fields. I simply want to extract to fields (ISPC_together & GSI together) and export a .csv list.
Any suggestions? Thanks for your support.
Jonas

Akzeptierte Antwort

Eric Delgado
Eric Delgado am 10 Okt. 2022
Try this...
data = struct('ISPC_together', 0.2053, 'GSI_together', 0.0172);
data(2) = struct('ISPC_together', 0.0243, 'GSI_together', 0.0040);
writetable(struct2table(data), 'data.csv')
  2 Kommentare
Jonas Bender
Jonas Bender am 14 Okt. 2022
Dear Eric,
thank you so much for your response. Do you have an idea how to put it in a for loop. Actually I have 2 data sets. In the future it might be more. I tried the code see below and get the message
Error using struct2table (line 33) Input structure must be a scalar structure, or a structure array with one column or one row.
Kind regards, Jonas
sz = [2 2];
varTypes = {'struct', 'struct'};
varNames = {'ISPC_together', 'GSI_together'};
Table_ISPC_vs_GSI = table ('Size', sz, 'VariableNames', varNames, 'VariableTypes', varTypes);
for i = 1:numel (data)
Table_ISPC_vs_GSI(:,1) = {struct2table(data(i).ISPC_together)}
Table_ISPC_vs_GSI(:,2) = {struct2table(data(i).GSI_togehter)}
end
Eric Delgado
Eric Delgado am 14 Okt. 2022
Bearbeitet: Eric Delgado am 14 Okt. 2022
Are you trying to concatenate the data in one just table?! See below comments on your code and something that could help you...
sz = [2 2];
varTypes = {'struct', 'struct'};
% STRUCT as elements of your big table?!
varNames = {'ISPC_together', 'GSI_together'};
Table_ISPC_vs_GSI = table ('Size', sz, 'VariableNames', varNames, 'VariableTypes', varTypes);
for i = 1:numel (data)
% data(i).ISPC_together and data(i).GSI_togehter are DOUBLE, so you can't
% convert it to TABLE using STRUCT2TABLE.
Table_ISPC_vs_GSI(:,1) = {struct2table(data(i).ISPC_together)}
Table_ISPC_vs_GSI(:,2) = {struct2table(data(i).GSI_togehter)}
end
Try this...
dataSet1 = struct('ISPC_together', 0.2053, 'GSI_together', 0.0172);
dataSet1(2) = struct('ISPC_together', 0.0243, 'GSI_together', 0.0040);
dataSet2 = struct('ISPC_together', 0.1010, 'GSI_together', 0.1010);
dataSet2(2) = struct('ISPC_together', 0.2020, 'GSI_together', 0.2020);
[struct2table(dataSet1); struct2table(dataSet2)]
ans = 4×2 table
ISPC_together GSI_together _____________ ____________ 0.2053 0.0172 0.0243 0.004 0.101 0.101 0.202 0.202

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by