2015-05-21 4 views
3

Так что я имел большую матрицу (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? Я просто не уверен, как подойти к проблеме, и любая помощь будет очень признательна, спасибо!

ответ

2

Он отображает в порядке, первый выход

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

Спасибо, я играл с этим кодом, и она работает !! – ocean800

Смежные вопросы