Clear Filters
Clear Filters

Use save function with '-fromstruct' option to save a cell array

16 views (last 30 days)
To save several variables in a ,mat file within a parfor loop, I'm using a '-fromstruct' option. In this case, an attempt to save cell array throws an error. If I replace a cell array with a string array - it works perfectly. However, I would like to avoid conversion from cell to string and back. Any ideas how to resolve this? Thank you
test_file = 'test.mat';
files={'test1.m', 'test2.m'};
T = ones(1,length(files));
save(test_file,'-v7.3', '-fromstruct', struct('T', T, 'files', files));
Error using save
The -FROMSTRUCT option must be followed by a scalar structure variable.

Accepted Answer

Stephen23 on 14 May 2024
Edited: Stephen23 on 14 May 2024
As the error message states, the structure must be scalar:
test_file = 'test.mat';
files = {'test1.m', 'test2.m'};
T = ones(1,length(files));
save(test_file,'-v7.3', '-fromstruct', struct('T',T,'files',{files}))
% ^ ^
The documentation explains how to define a scalar structure with cell arrays:

More Answers (0)


Find more on Parallel for-Loops (parfor) in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!