Extract fields from struct and convert to excel file

11 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Eric Delgado
Eric Delgado il 10 Ott 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 Commenti
Jonas Bender
Jonas Bender il 14 Ott 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 il 14 Ott 2022
Modificato: Eric Delgado il 14 Ott 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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by