在matlab,对一个数列排序后,怎样得到原数列的各个元素在排序后的数列的位置?

[复制链接]
查看11 | 回复4 | 2018-3-26 22:59:55 | 显示全部楼层 |阅读模式
在matlab中常用sort函数对数列进行排序[B,I] = sort(A)这样得到的B序列就是A序列中元素从小到大排列的序列而sort函数不单只能返回一个序列B,还能返回第二个参数I这里I就是排序后数列各元素在原序列中的位置,也就是B=A(I);这时候只要再对I排序一次[C,II]=sort(I)得到的II就是原数列的各个元素在排序后的数列的位置,也就是A=B(II);...
回复

使用道具 举报

千问 | 2018-3-26 22:59:55 | 显示全部楼层
如果你用的是sortrows函数,那么可以这样写:[Y,I]=sortrows(A);其中Y是排序后的数列,I是排序后元素在原来的数列中的位置。...
回复

使用道具 举报

千问 | 2018-3-26 22:59:55 | 显示全部楼层
假如你要排序的数组是 A,那么:[B,I] = sort(A)返回的 B 是排序后的数组,I 是对应元素原来在 A 中的位置。比如:A = [79, 39, 25, 41, 10];[B, I] = sort(A)% >>>% B =%
10
25
39
41
79% I =%
5
3
2 ...
回复

使用道具 举报

千问 | 2018-3-26 22:59:55 | 显示全部楼层
用sort函数排序的话,[sX,index] = sort(X) ,排序后,sX是排序好的向量,index是 向量sX中对X 的索引。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行