Sea*_*ean 7 matlab matlab-struct
a= struct('a1',{1,2,3},'a2',{4,5,6})
怎么能得到1的值;
我尝试使用返回错误的a.a1 {1}
>> a.a1{1}
??? Field reference for multiple structure elements that is followed by more reference blocks is an
error.
Run Code Online (Sandbox Code Playgroud)
我如何访问1?谢谢.
编辑
A = struct{'a1',[1 2 3],'a2',[4 5 6]}
我如何访问1.我使用,A(1).a1但我得到1 2 3
gno*_*ice 14
你必须这样做:
a(1).a1
Run Code Online (Sandbox Code Playgroud)
究其原因,就是因为你用它来创建结构的代码实际上创建了一个3片结构数组,其中第一个数组元素包含了a1: 1和a2: 4,第二个数组元素包含a1: 2和a2: 5,第三个数组元素都包含a1: 3和a2: 6.
当您{}在调用STRUCT时使用花括号时,MATLAB假定您要创建一个结构数组,在该结构数组中,您可以在结构数组元素中分布单元格的内容.如果您想要创建一个单个1-by-1结构元素,其中字段包含单元格数组,则必须添加一组括起单元格数组的花括号,如下所示:
a = struct('a1',{{1,2,3}},'a2',{{4,5,6}});
Run Code Online (Sandbox Code Playgroud)
然后你的原件a.a1{1}将工作.
编辑:
如果使用数字数组而不是单元数组创建结构,如下所示:
A = struct('a1',[1 2 3],'a2',[4 5 6]);
Run Code Online (Sandbox Code Playgroud)
然后您可以访问值1,如下所示:
A.a1(1)
Run Code Online (Sandbox Code Playgroud)
有关在MATLAB中使用结构的更多信息,请查看此文档页面.