在matlab,对一个数列排序后,怎样得到原数列的各个元素在排序后的数列的位置?
4个回答
展开全部
如果你用的是sortrows函数,那么可以这样写:[Y,I]=sortrows(A);
其中Y是排序后的数列,I是排序后元素在原来的数列中的位置。
其中Y是排序后的数列,I是排序后元素在原来的数列中的位置。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假如你要排序的数组是 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 4 1
观察 I,第一个元素是 5。这就表示,原来的第 5 个元素,排序后在第 1 的位置。
这个元素的值是 10,即是 B(1)。如果你只关心 I 对排序后的数组不感兴趣,也可写成:
[~,I] = sort(A)
这样就只返回 I,不返回 B 了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sort函数排序的话,[sX,index] = sort(X) ,排序后,sX是排序好的向量,index是 向量sX中对X 的索引。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询