Writestruct() 'Scalar' Error

53 views (last 30 days)
Rod Lopez
Rod Lopez on 10 Feb 2021
Commented: Rod Lopez on 15 Feb 2021
I am attempting to use writestruct() to save a structure to a .csv file, using version 2020b.
I started by calling writestruct as follows: writestruct(S,fullname), where S is the structure, and fullname is fullname=[path filename], which was obtained via uiputfile.
When I run this, I receive this error: Expected S to be a scalar.
I figured that the structure S could be anything as long as it is a structure, what am I missing?
Thank you!!
Jakob on 10 Feb 2021
Have you tried struct2table() and then export the table with writetable()?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 10 Feb 2021
No, you must use a scalar structure, not a non-scalar structure.
S(1).this = 'that';
writestruct(S, 'junkfile.xml');
%scalar okay
S(2).this = 'the other';
writestruct(S, 'junkfile.xml');
Expected S to be a scalar.
%not okay
Rod Lopez
Rod Lopez on 15 Feb 2021
As a quick update for anyone who runs into these issues:
Since I needed to export a non-scalar structure to excel, and a few fields are matricies of different sizes, I first used mat2str to consolidate those fields down to what will be a single cell in the table. It is not ideal but at least this way there aren't additional columns in the table for each additional row of one of these fields.
Thank you!

Sign in to comment.

More Answers (0)




Community Treasure Hunt

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

Start Hunting!