结构体实例:
>>book.name='Matlab';
>>book.price=200;
>>book.pubtime='2016';
>>book
book =
name: 'Matlab'
price: 200
pubtime: '2016'
- ==Struct==(field1,value1,field2,value2,……,fieldN,valueN) :创建结构体或将其他的数据类型转换成结构体。
>>s = struct('f',{'a','b'}) returns s(1).f = 'a' and s(2).f = 'b'.
>>book2=struct('name','Matlab','price',23,'pubtime',2015);
>> book2
book2 =
name: 'Matlab'
price: 23
pubtime: 2015
- ==whos==: 用于列出当前工作空间中所有变量,以及它们的名字、尺寸(比如一个矩阵或数组的行列维数)、所占字节数、属性等信息。这些信息都显示在matlab中的workspace窗口中==。==
>> whos
Name Size Bytes Class Attributes
book 1x1 556 struct
book2 1x1 556 struct
3.==数值数组==(field完全相同的structure常常放在一起构成的array),可以用‘[ ]’抽取不同structure的同一字段值,构成单独的numeric array(数值数组)。
>> for i=0:10,...
books(i).name=strcat('book',num2str(i));...
books(i).price=20+i;...
books(i).pubtime='2010';
end;
下标索引必须为正整数类型或逻辑类型。
>> for i=1:10,...
books(i).name=strcat('book',num2str(i));...
books(i).price=20+i;...
books(i).pubtime='2010';
end;
>> books
books =
1x10 struct array with fields:
name
price
pubtime
>> books(1)
ans =
name: 'book1'
price: 21
pubtime: '2010'
>> price=[books.price]
price =
21 22 23 24 25 26 27 28 29 30
4.==fieldname==(s)获得数据结构数组s的字段名。
>> fieldnames(book)
ans =
'name'
'price'
'pubtime'
5==.getfield==(a,fieldname)相当于ans=a.fieldname;
>> getfield(book,'name')
ans =
Matlab
6.==setfield==(a,fieldname,v)相当于a.filedname=v
>> setfield(book,'name','MATLAB')
ans =
name: 'MATLAB'
price: 200
pubtime: '2016'
7.==remfield==(a.filesname)删除a中fieldname指定的字段
>> book=rmfield(book,'name')
book =
price: 200
pubtime: '2016'
8.==isfield==(a,fieldname)判断fieldname是否为a的字段,返回1或0。
>> isfield(book,'name')
ans =
0
9。isstruct(a)判断a是否为结构数组,返回1或0。
>> isstruct(book)
ans =
1
10.orderfields 按照字典顺序排列字段。
>> book2=orderfields(book)
book2 =
price: 200
pubtime: '2016'