She*_*hew 2 arrays sorting indexing matlab matrix
我正在尝试基于另一个数组对数组进行排序.我尝试使用索引返回的sort方法,但它在某种程度上表现得很奇怪.
y = [1 2 3; 2 3 4]
x = [1 3 4; 2 2 3]
[yy, ii] = sort(y,'descend');
Run Code Online (Sandbox Code Playgroud)
yy =
2 3 4
1 2 3
ii =
2 2 2
1 1 1
Run Code Online (Sandbox Code Playgroud)
但我x(ii)不是基于排序的矩阵y.
x(ii) =
2 2 2
1 1 1
Run Code Online (Sandbox Code Playgroud)
我期待矩阵是:
x(ii) =
2 2 3
1 3 4
Run Code Online (Sandbox Code Playgroud)
如何x根据另一个矩阵对矩阵进行排序y?
ii是行下标,但由您输入为线性索引.在继续之前,您需要将它们转换为相关的线性指数
>> szx = size(x);
>> x(sub2ind(szx, ii, repmat(1:szx(2),szx(1),1)))
ans =
2 2 3
1 3 4
Run Code Online (Sandbox Code Playgroud)