Is it possible to use the LOAD function to load structure fields selectively in MATLAB?

3 次查看(过去 30 天)
I would like to load structure fields selectively in MATLAB using the LOAD function. For example, if I define the following structure:
a.x = 1;
a.y = 2;
save example a;
It is possible to selectively load the structure variable a:
load example a
I want to be able to selectively load only the x field of a.

采纳的回答

MathWorks Support Team
Use the "-struct" option when saving MAT-files so that structure fields are saved as separate variables. You can then use the LOAD function to select particular variables from the MAT-file:
a.x = 1;
a.y = 2;
save('example','-struct','a');
clear all;
load('example','x');
The "-struct" option is not available prior to MATLAB 7.0 (R14).
Using the "struct" flag causes each field of the structure to be individual variables in the MAT-file. To load them back into a structure use:
>> a = load('example')
  5 个评论
K E
K E 2016-5-5
编辑:K E 2016-5-5
A downside of the -struct flag is that the *.mat file contains a set of variables so I lose the original structure, unless I am missing something.
Richard Crozier
Richard Crozier 2018-5-15
@K E, the advantage is that if you then use load on the same file like
S = load (filename)
It's put back into the structure again. In fact there's not a simple way to load variables from a file into a variable directly without them ending up in a structure.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Workspace Variables and MAT Files 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by