compare two matrix and keep only the elements in common
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Aude Rapet
am 21 Nov. 2016
Kommentiert: Aude Rapet
am 22 Nov. 2016
Hi, I am a beginner in matlab, and I need to compare to matrix and then keep only the elements present in both matrix in my 1st matrix (s(1).r). For this I compare the first column of each matrix. I've read the documentation and tried to write a code with ismember:
Lia = ismember(s(1).r(:,1), res_select(:,1)) ;
for ind = length(s(1).r)-1 : -1 : 1
if Lia(ind)==0
s(1).r(ind,:)=[];
end
end
I think something is wrong, because I am supposed to find 1987 elements in common and I found 1988...so close! Where is my mistake, or is there an easier way to do this? Thank you!! Aude
0 Kommentare
Akzeptierte Antwort
KSSV
am 21 Nov. 2016
Bearbeitet: KSSV
am 21 Nov. 2016
We don't have data to check your code. Note that, You need not to run a loop...simply use, s(1).r(Lia,:) to get the common elements.
As you have two sets and you want to pick the common elements, you can find intersection of both the arrays. Intersection gives you common elements. doc intersect.
Sometimes depending on the floating point numbers, ismember/ intersect may not work. That case, you need to fix a tolerance value and use ismemebrtol. doc ismembertol.
3 Kommentare
KSSV
am 21 Nov. 2016
You need not to remove the elements, Cc itself will have all common elements, what is length(Cc)?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical 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!