matlab结构体、数组和单元数组类型的创建
matlab结构体、数组和单元数组类型的创建
@目录matlab结构体、数组和单元数组类型的创建matlab结构体类型
数组类型
单元数组类型
matlab结构体类型
通过字段赋值创建结构体
创建格式:
结构体名称.字段名称
样例:
student.name='Alan';
student.grade=6;
student.subject={'Chinese','math','English'};
student
student =
包含以下字段的 struct:
name: 'Alan'
grade: 6
subject: {'Chinese' 'math' 'English'}
student.result={99,99,99};%可以对已经创建好的结构体再次增加结构体成员
student
student =
包含以下字段的 struct:
name: 'Alan'
grade: 6
subject: {'Chinese' 'math' 'English'}
result: {[99] [99] [99]}
使用struct函数来创建
单个结构体创建使用语法:
StrArray=struct('field1',var1,'field2',var2,'field3',var3,'field4',var4,...'fieldn',varn,)
样例:
S=struct('A','AAA','B',99,'C',100)
S =
包含以下字段的 struct:
A: 'AAA'
B: 99
C: 100
结构体数组的创建:
创建元素相同的结构体数组
使用repmat函数:
help repmat
repmat - 重复数组副本
此 MATLAB 函数 返回一个数组,该数组在其行维度和列维度包含 A 的 n 个副本。A 为矩阵时,B 大小为 size(A)*n。
B = repmat(A,n)
B = repmat(A,r1,...,rN)
B = repmat(A,r)
另请参阅 bsxfun, kron, meshgrid, ndgrid, repelem, reshape
repmat 的参考页
名为 repmat 的其他函数
注意:如果在要复制的元素后面只有一个n,将生成一个矩阵,行和列对被复制的数均扩大n倍。如果是从1-n的数则生成的是一个一维的数组。
repmat(32,5)
ans =
32 32 32 32 32
32 32 32 32 32
32 32 32 32 32
32 32 32 32 32
32 32 32 32 32
student
student =
包含以下字段的 struct:
name: 'Alan'
grade: 6
subject: {'Chinese' 'math' 'English'}
result: {[99] [99] [99]}
C=repmat(student,1,2,3,4,5)
C =
包含以下字段的 5-D struct 数组:
name
grade
subject
result
C(1)
ans =
包含以下字段的 struct:
name: