2

我有一个结构存储在我的硬盘上。我需要将其字段之一加载到局部变量中。一个简单的负载得到

% 'PRICES' is the stored struct.  1st fieldname is '.Raw'.  
% Only '.Raw' needs to be loaded

var = load( fullfile(path, 'PRICES.Mat') ) % Wrong as var becomes a struct containing a struct.
% DESIRED value: var = PRICES.Raw ;

是否可以在 1 步中做到这一点?我当然可以覆盖 var 并完成此操作,但是有直接的方法吗?谢谢。

4

2 回答 2

8

如果您使用的是 MATLAB 7 或更高版本,则可以使用以下-struct标志保存您的结构:

save(fullfile(path, 'PRICES.Mat'),'-struct','PRICES');

如果以这种方式保存结构,则可以加载结构的特定字段而无需加载结构的所有字段:

load(fullfile(path, 'PRICES.Mat'),'Raw');
disp(Raw);
于 2011-08-31T17:01:02.960 回答
1

您不能从 MAT 文件加载变量的一部分。你想要:

var = load( fullfile(path, 'PRICES.Mat'), 'PRICES' );
var = var.PRICES.Raw;

或者

load( fullfile(path, 'PRICES.Mat'), 'PRICES');
var = PRICES.Raw;

请参阅 MATLAB 帮助: http: //www.mathworks.co.uk/help/techdoc/ref/load.html

于 2011-08-31T16:54:06.870 回答