2013-03-07 2 views
0

Я пытаюсь работать со структурами в Matlab. У меня есть код, который выглядит так:Структуры в matlab: сохранить нагрузку и работать

for i=1:10 
    a(i).p=some value; 
    a(i).q=some other value 
end 

Я сохранил его в файле мата, но он не кажется успешным. Может ли кто-нибудь сказать мне, как мне сохранить и загрузить эту структуру в файл/из файла и прочитать данные определенного типа? например, как я могу прочитать поле a(i).q после загрузки структуры? Благодаря

ответ

5

Для сохранения и загрузки использования save и load:

for ii=1:10 
    a(ii).p = rand(1); 
    a(ii).q = rand(1); 
end 
save('myMatFile.mat', 'a'); % note that the variable name is passed as a STRING 

clear a; % remove a from workspace. it is gone... 
exist('a', 'var'), % make sure a is gone 

load('myMatFile.mat'); % load 
exist('a', 'var'), % a now exists! Ta-da!! 

a(5).q, % access the fifth element of a 

PS
It is best not to use i and j as variables in Matlab

+0

Просто надо знать, что MATLAB не может справиться с 'сохранить ('file.mat', 'а. p ') '. Вам нужно сделать 'foo = a.p; save ('file.mat', 'foo') ' –

+0

@CarlWitthoft вы можете' save ('file.mat', 'a', '- struct') 'получить переменную' p' в сохраненном файле. – Shai

+0

Ну, да, 'save ('file.mat', - struct, 'a', 'p')' будет работать, но зачем пользователю нужно делать то, что должен обработать парсер? –

Смежные вопросы