matlab 结构体排序
结构体S,有若干属性,现要取其中E属性值排名前三的结构进行操作,该怎么做? 我的做法是先对其按照属性E大小排序,排序后取前三个,但是这样无法得到前三个S的索引值,急求 是要得到排序后对应的S的索引值,不是S.E的索引值 回答的好的另有分送,万分感激
结构体S,有若干属性,现要取其中E属性值排名前三的结构进行操作,该怎么做? 我的做法是先对其按照属性E大小排序,排序后取前三个,但是这样无法得到前三个S的索引值,急求 是要得到排序后对应的S的索引值,不是S.E的索引值 回答的好的另有分送,万分感激
答案:%首先 获得所有E属性值
Value=S.E
%然后,对Value排序,看你是按升序还是降序,如果按升序
[Value2,pos]=sort(Value) %Value2为升序排完后的数据,pos为Value2中的数值在Value1中对应 %的索引,详情可以help sort。
%再然后,为了得到楼主所需要的S的索引值,及对应的结构体属性
ind=pos(1:3); %得到索引了,我想楼主应该可以你需要的结构体其他属性了
%比如想得到结构体S中的F属性
SF=S.F(ind)