How to use Uniquetol without sorting?

39 visualizzazioni (ultimi 30 giorni)
AMEHRI WALID
AMEHRI WALID il 12 Lug 2019
Commentato: Min Zhang il 23 Nov 2021
Hello everyone,
I'm using the function "Uniquetol" to remove the duplicate vector from a matrix A which the size is (3, 10).
B = ( uniquetol(A', 1e-6, 'ByRows', 1) )';
It works very well, but it is also sorting my matrix which what I don't want
Please, can anyone tell how can we use the function "Uniquetol" without sorting ?

Risposta accettata

Guillaume
Guillaume il 12 Lug 2019
[~, colindices] = uniquetol(A', 1e-6, 'ByRows', true); %get indices of unique value. Is sorted BY VALUE
B = A(:, sort(colindices)) %Use the indices sorted BY INDEX instead
  4 Commenti
Bruno Luong
Bruno Luong il 28 Ott 2020
Both solutions are equally valid. They respect the order in the original matrix.
Sorry Huy, there is not reason your solution is right and other is wrong.
Min Zhang
Min Zhang il 23 Nov 2021
Try this:
A = [0.05 0.11 0.18; ...
0.46 0.52 0.76;...
0.34 0.36 0.41; ...
0.18 0.21 0.29; ...
0.46 0.52 0.76;...
0.05 0.11 0.18;];
%
[~, colindices] = uniquetol(A, 'ByRows', true)
sort(colindices)
% get indices of unique value. Is sorted BY VALUE
B = A(sort(colindices),:)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Develop Apps Using App Designer in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by