将struct字段加载到变量中(MATLAB)

时间:2011-08-31 16:35:53

标签: matlab variables struct matlab-load

我的架构存放在我的硬盘上。我需要将其中一个Field加载到局部变量中。

是一个简单的负载
% '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 ;

是否可以一步完成?我可以覆盖var并完成这个,但有没有直接的方法呢?感谢。

2 个答案:

答案 0 :(得分:8)

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

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

如果以这种方式保存结构,那么您可以加载结构的特定字段而不加载所有结构的字段:

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

答案 1 :(得分: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