matlab 结构体排序

结构体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)
温馨提示:答案为网友推荐,仅供参考
相似回答