MATLAB向量随机排列后,如何使用新向量和索引表示旧向量?

如new_index是随机排列的索引,B = A(new_index)。那么A = B(?)问号处的索引如何得到?

这是一个很有趣的问题,B = A(new_index)。那么A = B(?),我们用reverse_index代替这个'?'符号。
即现在已知B = A(new_index),要求一个reverse_index,使得A = B(reverse_index),求解起来很简单

[~,reverse_index] = sort(new_index);

举个例子

clc;clear
A = [6,7,8,6,4,43,4,6,3]
[~,new_index]= sort(rand(size(A)));
B = A(new_index);
[~,reverse_index] = sort(new_index);
C = B(reverse_index)

结果是

A =

     6     7     8     6     4    43     4     6     3


C =

     6     7     8     6     4    43     4     6     3

说明我的reverse_index是正确的!!!好玩吧,好玩的话记得采纳点赞加关注哦