How do I compare two sets of numerical strings character by character on Matlab ?

4 Ansichten (letzte 30 Tage)
I want to compare two sets of numerical data character by character e.g.
1011101 and 1011000
so that matlab will show that the 5 and 7th characters are different (0000101). I want to then count the number of differences (2).
If the terminology I use is wrong, please ignore that and focus on the example I have given to communicate what I want to do.
  4 Kommentare
Hannah
Hannah am 10 Mai 2014
Bearbeitet: Hannah am 10 Mai 2014
Thanks,
I'm having some trouble though because the numbers are too long so if I use xlsread, the number is coming up as NaN. Any ideas on how to solve this?
p.s. I managed to upload the file as a cvs manually, but then Matlab is having trouble processing the logical array ~=

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 8 Mai 2014
Using MATLAB binary operations (considering the inputs — a and b here — are numbers:
a = 1011101;
b = 1011000;
A = num2str(a,'%d')
B = num2str(b,'%d')
ai = int16(bin2dec(A))
bi = int16(bin2dec(B))
C = dec2bin(bitxor(ai,bi))
HamDist = length(findstr(C,'1')) % Hamming Distance
produces:
HamDist =
2
What you want is known as the Hamming Distance between two binary numbers.

Weitere Antworten (1)

Jos (10584)
Jos (10584) am 8 Mai 2014
a = '1011101'
b = '1011000'
q = a~=b % a logical array, true for locations where a and b differ
n = nnz(q) % count the number of non zeros (true)
  7 Kommentare
Sagar Damle
Sagar Damle am 10 Mai 2014
Bearbeitet: Sagar Damle am 10 Mai 2014
Hannah,though you have accidentally clicked on Star's answer,now you can vote for Jos by clicking on '0 votes' written below Noddy's picture!This will add two points to Jos's reputation!
Jos (10584)
Jos (10584) am 12 Mai 2014
Bearbeitet: Jos (10584) am 12 Mai 2014
Thanks Sagar, especially for recognising Noddy! I do not care so much about reputation anymore, but I like feedback.

Melden Sie sich an, um zu kommentieren.

Kategorien

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

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by