MATLAB中的结构数组
(2013-03-13 09:38:59)
标签:
it |
分类: 技术 |
结构数组:
>> employee.name='tiger';
>> employee.sex='male';
>> employee.age='24';
>> employee.number='12345';
>> employee
employee =
>> employee(2).name='lee';
>> employee(2).sex='female';
>> employee(2).age='32';
>> employee(2).number='82356';
>> employee(2)
ans =
> employee
employee =
1x2 struct array with fields:
>> list.ID=123;
>> list.sex='male';
>> list.age=25;
>> list
list =
>> list(2).ID=456;
>> list(2).sex='female';
>> list(2).age=32;;
>> list2=list(1:2)
list2 =
1x2 struct array with fields:
>> list2(1)
ans =
>> str=list2.sex
str =
male
>> ages=[list.age]
ages =
(4)结构数组中的操作
对于结构的基本操作其实是对结构数组元素包含记录的操作。主要有结构记录数据的访问、字段的增加和删除等。访问结构数组元素包含记录的方法很简单,直接使用结构数组的名臣和字段的名臣以及操作符“.”完成相应的操作即可。不过,在访问结构数组的元素时,可以使用所谓的“动态”字段的形式。
Struct_name.(expression)
>>
student=struct('name',{'aaa','bbb'},'age',{23,24},'ID',{001,002},'score',{rand(3)*10,rand(3)*10});
>> student
student =
1x2 struct array with fields:
>> student(2).score
ans =
>> student(1).score(1,:)
ans =
>> student.name
ans =
aaa
ans =
bbb
>> student.('name')
ans =
aaa
ans =
bbb
(5)结构操作函数
struct:创建结构或将其他数据类型转变成结构
fieldnames:获取结构的字段名称
getfield:获取结构的字段数据
setfield:设置结构的字段数据
rmfield:删除结构的指定字段
isfield:判断给定的字符串是否为结构的字段名称
isstruct:判断给定的数据对象是否为结构类型
orderfields:将结构字段排序
(6)结构数组的大小
(7)结构数组的嵌套
>> A=struct('data',[1 2 3;4 5 6],'nest',struct('testnum','test','xdata',[7 8 9],'ydata',[10 11 12]))
A =
>> A(2).data=[1 3 3;4 5 5];
>> A.data
ans =
ans =
>> A(2).nest.testnum='test2';
>> A(2).nest.xdata=[4 3 2];
>> A(2).nest.ydata=[6 9 8];
>> A.nest
ans =
ans =
>>
要索引嵌套的结构,用.标记添加嵌套的字段名。索引表达式中的第一个文本字符串确认结构数组,后面的表达式获取包含其他结构的字段名。
A(1).nest
A(2).nest.xdata