Загрузить поле структуры в переменную (MATLAB) - PullRequest
2 голосов
/ 31 августа 2011

У меня есть структура, хранящаяся на моем жестком диске. Мне нужно загрузить одно из его полей в локальную переменную. Простая загрузка получает

% '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 и выполнить это, но есть ли прямой способ сделать это? Спасибо.

Ответы [ 2 ]

8 голосов
/ 31 августа 2011

Если вы используете MATLAB 7 или выше, вы можете сохранить свою структуру, используя флаг -struct:

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

Если вы сохраните свою структуру таким образом, то вы можете загрузить определенное полеструктура без загрузки всех полей структуры:

load(fullfile(path, 'PRICES.Mat'),'Raw');
disp(Raw);
1 голос
/ 31 августа 2011

Вы не можете загрузить часть переменной из 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

...