Error when converting several arrays from struct to table

Im trying to convert some arrays called var1, var2, var3 etc.in a struct variable to table. I have used struct2table like this:
struct2table(out.var1,out.var2,out.var3);
When I do that, I get following message:
"S must be a scalar structure, or a structure array with one column or one row".
What is the reason for that?

Réponses (1)

You say that you are converting those arrays, but what kinds of arrays are they? struct2table() requires that the first argument be a scalar structure or a structure vector, and that the arguments after that are name/value pairs.
I suspect you want
array2table(out.var1, out.var2, out.var3, 'VariableNames', {'var1', 'var2', 'var3'})
or more likely
array2table(out.var1(:), out.var2(:), out.var3(:), 'VariableNames', {'var1', 'var2', 'var3'})

2 commentaires

Walter, array2table takes just one array. I think you were thinking of
table(out.var1, out.var2, out.var3, ...)
But I think maybe just
struct2table(out)
is what's needed.
Ah, good catch
array2table([out.var1(:), out.var2(:), out.var3(:)], 'VariableNames', {'var1', 'var2', 'var3'})

Cette question est clôturée.

Clôturé :

le 12 Avr 2018

Community Treasure Hunt

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

Start Hunting!

Translated by