How to calculate if two matrices have similar elements.

7 views (last 30 days)
I've got a number of different csv files which have the following format;
Number, Number, Number, Number, Number, Text.
Below are some examples.
3764.92,3764.92,-759.167,58.8299,65.4035,1,One
165.493,3234.51,-1940.46,311.928,63.8692,1,Three
I was wondering if its at all possible to calculate if 2 different matrices have similar elements (the same rows) and how many of the same elements they have. There are 34 columns per file.
Any help would be much appreciated!

Accepted Answer

Dishant Arora
Dishant Arora on 27 Aug 2012
Edited: Dishant Arora on 27 Aug 2012
total=0;
for num=1:34
if isequal(file1(num),file2(num))
total=total+1;
end
end
sum will return the number of same elements
  5 Comments
Walter Roberson
Walter Roberson on 27 Aug 2012
Your values are floating point. Floating point values that are not calculated exactly the same way often have round-off differences, and so will not compare equal.
Dishant Arora
Dishant Arora on 27 Aug 2012
Edited: Dishant Arora on 27 Aug 2012
bascially you want number of common elements in the files?? does the rows here follow the same pattern as above , i mean with last element as string and all other elements of class double(numbers).
if this is the case, try this:
mat1=cell2mat(file1(1:end-1));
mat2=cell2mat(file2(1:end-1));
total=length(intersect(mat1,mat2))+isequal(file1(end),file2(end));

Sign in to comment.

More Answers (0)

Categories

Find more on Entering Commands in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!