跟踪矩阵的映射值?

Keeping track of mapped values of a matrix?

所以我有一个大矩阵 (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];