MATLAB Answers

save problem: -STRUCT must be the name of a scalar structure variable

28 ビュー (過去 30 日間)
Yu Li
Yu Li 2018 年 9 月 14 日
コメント済み: Stephen 2021 年 7 月 23 日
I generated a struct file and tried to save it, but Matlab occurs error: The argument to -STRUCT must be the name of a scalar structure variable.
Below are the test code:
for i=1:1:100
fprintf('%0dth data.\n',i)
eval(['test.p',num2str(i),'=1:1:2e5;'])
end
save('test.mat','-v7.3','-struct','S');
is there any problem with my code?
Thanks!
Yu
  1 件のコメント
Stephen
Stephen 2021 年 7 月 23 日
Rather than using evil EVAL, it is simpler, more efficient, and much more robust to use dynamic fieldnames:
test = struct();
for k = 1:100
fld = sprintf('p%d',k);
test.(fld) = 1:1:2e5;
end
save('test.mat','-v7.3','-struct','test');

サインインしてコメントする。

採用された回答

Stephen
Stephen 2018 年 9 月 14 日
It is unclear from your post what the data type of variable "S" is. But the error is telling you that "S" is NOT a structure. You can either:
1) Change "S" to a structure variable containing the data you want to save.
or
2) Remove the '-struct' argument from the save command.
  1 件のコメント
Yu Li
Yu Li 2018 年 9 月 14 日
Thank you.

サインインしてコメントする。

その他の回答 (1 件)

埃博拉酱
埃博拉酱 2021 年 7 月 23 日
save(filename,'-fromStruct',test);

Community Treasure Hunt

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

Start Hunting!

Translated by