Azzera filtri
Azzera filtri

Determining the difference between two vectors

20 visualizzazioni (ultimi 30 giorni)
hello friends,
i have to find error between 2 array. i sent a data from transmitter to receiver.
data transmitted is;
td = [1 1 1 0 0 0 1 1 0 1 0 1 1 0 0];
and the data received is;
rd = [0 1 1 0 1 0 1 1 0 1 0 1 1 0 1];
and the number of error is 3 as it is seen above
but how can i find the error number by matlab code?..
Thanks for your helps.

Risposta accettata

Paulo Silva
Paulo Silva il 24 Mar 2011
numel(find(td~=rd))

Più risposte (3)

Matt Fig
Matt Fig il 24 Mar 2011
Expanding on Paulo's answer, to get the logical index locations of the errors, do this:
locs = td~=rd
now to find out how many there are, I would use
errornumber = sum(locs) % Or just sum(td~=rd) if locs not needed.
If you need the linear index number of the errors, then use FIND, as Paulo shows.
  2 Commenti
Paulo Silva
Paulo Silva il 24 Mar 2011
simple code :) +1 vote
Anu Shivalinga
Anu Shivalinga il 29 Lug 2022
Hello, this works perfect. Thanks. But what if sizes of 2 arrays are not equal? How to find the mismatch between those?

Accedi per commentare.


Paulo Silva
Paulo Silva il 24 Mar 2011
yet another way
sum((td & rd | (~td & ~rd))==0)
even more simple
sum(~((td & rd | (~td & ~rd))))
even better
sum(xor(td,rd))

osman yurdakul
osman yurdakul il 24 Mar 2011
thanks for all helps it's working properly now thanks again ...

Tag

Non è stata ancora inserito alcun tag.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by