1、建立结构体数组
struct在matlab中是用来建立结构体数组的。通常有两种用法:
s = struct('field1',{},'field2',{},...)
这是建立一个空的结构体,field1,field2是域名称
s = struct('field1',values1,'field2',values2,...)
这是在建立结构体的时候就赋值,values1,values2就是针对field1,field2所赋的值。
例如:s = struct('type',{'big','little'},'color',{'red'},'x',{3 4})
这个结构体有三个域'type','color','x',根据英文意义可以看出分别是类型,颜色和值的意思。类型可以取的值有'big','little',也就是类型有两种,分别是大和小。颜色只有'red'红色,而值x可以是3或者4。
2、对结构体数组按某一个成员进行排序
[seednew,index] = sort([seed.z]) ;对seed.z升序排列
seednew 是升序排好的seed.z
查看只按z排列的结构体结果
则 seed(index(1))、seed(index(2)) 、seed(index(3))
或者seednew1=seed(index(:))
或seednew2=seed(index)
3、sort排序
(1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序.
eg: A=[1,5,3],则sort(A)=[1,3,5]
A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3]
(2)B=sort(A,dim),对数组按指定方向进行升序排序,
dim =1,表示对每一列进行排序,,dim=2表示对每一行进行排序.
(3)B=sort(A,dim,mode),mode为指定排序模式,mode为"ascend"时,进行升序排序,为"descend "时,进行降序排序.
(4)[B,I]=sort(A,.....),I为返回的排序后元素在原数组中的行位置或列位置.
一些例子:
>> A=[3 4 2;1 5 3;4 7 1]
A =
3 4 2
1 5 3
4 7 1
>> A(:)
ans =
3
1
4
4
5
7
2
3
1
>> min(A(:))
ans =
1
>> max(A(:))
ans =
7
>> A
A =
3 4 2
1 5 3
4 7 1
>> sort(A)
ans =
1 4 1
3 5 2
4 7 3
>> A
A =
3 4 2
1 5 3
4 7 1
>> sort(A(:))
ans =
1
1
2
3
3
4
4
5
7
>> sort(A,1)
ans =
1 4 1
3 5 2
4 7 3
>> sort(A,2)
ans =
2 3 4
1 3 5
1 4 7
>> sort(A,1,"descend")
??? sort(A,1,"descend")
|
Error: Missing variable or function.
>> sort(A,1,'descend')
ans =
4 7 3
3 5 2
1 4 1
>> [B,I]=sort(A)
B =
1 4 1
3 5 2
4 7 3
I =
2 1 3
1 2 1
3 3 2