所以我得到了一个大矩阵(4091252x2),它的大值如下:

 439105     1053224
  439105     1696241
  439105      580064
  439105     1464748
 1836139     1593258
 1464748      439105
 1464748     1053224
 1464748     1696241
 1464748      580064
  580064      439105

我把它映射成更小的数字但是,我如何跟踪我映射的数字?
例如,假设我有一个矩阵
A = [110  503
     402  110
     300  900
     300  402]

并将其映射到:
B = [1  4
     3  1
     2  5
     2  3]

使用:
[~,~,D] = unique(A);
B = reshape(D,size(A))

我如何编写一个函数来跟踪我映射的值例如110=1我只是不知道如何解决这个问题,任何帮助都将非常感谢,谢谢!!

最佳答案

它按顺序映射,所以第一个输出

[largeMap,~,D] = unique(A);
B = reshape(D,size(A)) ;
smallMap = (1:length(largeMap))';
map = [largeMap, smallMap];

10-08 17:40