matlab中的结构:节省负载和工作量

matlab中的结构:节省负载和工作量,matlab,structure,Matlab,Structure,我试图在matlab中使用结构。我有一个如下代码: for i=1:10 a(i).p=some value; a(i).q=some other value end 我把它保存到一个mat文件中,但似乎没有成功。有谁能告诉我,我如何将这个结构保存并加载到文件中/从文件中读取特定类型的数据?例如,加载结构后如何读取字段a(I).q? 感谢您的保存和加载使用,以及: PS 用于保存和加载,以及: PS 请注意,MATLAB无法处理save('file.mat','a.p')。你需

我试图在matlab中使用结构。我有一个如下代码:

for i=1:10
    a(i).p=some value;
    a(i).q=some other value
end
我把它保存到一个mat文件中,但似乎没有成功。有谁能告诉我,我如何将这个结构保存并加载到文件中/从文件中读取特定类型的数据?例如,加载结构后如何读取字段
a(I).q

感谢您的保存和加载使用,以及:

PS

用于保存和加载,以及:

PS

请注意,MATLAB无法处理
save('file.mat','a.p')
。你需要做
foo=a.p;save('file.mat','foo')
@CarlWitthoft您可以
save('file.mat','a','-struct')
在保存的文件中获取变量
p
。是的,
save('file.mat',-struct,'a','p')
可以工作,但是用户为什么必须做解析器应该处理的事情呢?请注意,MATLAB不能处理
save('file.mat和'a.p'))
。你需要做
foo=a.p;save('file.mat','foo')
@CarlWitthoft您可以
save('file.mat','a','-struct')
来获取保存文件中的变量
p
。当然,
save('file.mat',-struct,'a','p')
会起作用,但是用户为什么要做解析器应该处理的事情呢?
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