Filter löschen
Filter löschen

Find Unique values in array

8 Ansichten (letzte 30 Tage)
Ali Tawfik
Ali Tawfik am 12 Mai 2020
Kommentiert: Ameer Hamza am 13 Mai 2020
Hi all,
I am trying to create a new array contains ONLY the unique values (same values but not repeated) which in the following case are 90 0 45
I used unique function, however, the function also returns the same data as in x, but in sorted order. I DO NOT want them in sorted order,
Also, I would like to obtain the index of the unique values in the x
like index=[1,2,9]
clear all;
clc;
x=[90 0 0 90 90 90 90 90 45 0 0 0];
y=unique(x)

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 12 Mai 2020
Bearbeitet: Ameer Hamza am 13 Mai 2020
clc;
x=[90 0 0 90 90 90 90 90 45 0 0 0];
[y, idx] = unique(x, 'stable')
output
y =
90 0 45
idx =
1
2
9
  4 Kommentare
Ali Tawfik
Ali Tawfik am 13 Mai 2020
Hi,
Thanks for your prompt reply.
I understand, but I am looking for ONLY for index 1 and 4
So I wanna my output to be
z(:,:,1) = [10;20];
z(:,:,4)=[100;200]; which should be z(:,:,2)
Ameer Hamza
Ameer Hamza am 13 Mai 2020
Try try something like this
idx = [1 4];
for i=1:numel(idx)
z(:,:,i)=A(:,:,idx(i))
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by