why eq says they are not equal

3 Ansichten (letzte 30 Tage)
Nuchto
Nuchto am 19 Jul. 2012
I have two equal vectors a = b. When I check for equality:
y = eq(a, b)
find(y==0)
I get most of values, meaning they are NOT equal.
What would be the reason for this?
N.
  5 Kommentare
Nuchto
Nuchto am 22 Jul. 2012
Thanks, I did.
Jan
Jan am 22 Jul. 2012
@Nuchto: Is your problem solved?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Muruganandham Subramanian
Muruganandham Subramanian am 19 Jul. 2012
Bearbeitet: Walter Roberson am 22 Jul. 2012
Hi Nuchto,
Check this below link:
  1 Kommentar
Nuchto
Nuchto am 19 Jul. 2012
I have checked the help, but it didn't answer to my question.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Jan
Jan am 19 Jul. 2012
Bearbeitet: Jan am 19 Jul. 2012
To compare two vectors use:
r = isequal(a, b)
or to find the difference between vectors (or other arrays) of the same size:
any(a - b)
Note, that the later replies FALSE even for ones(1,10) and ones(1,1).
If you only assume, that the vectors have equal values, check a - b and note, that the limited precision of the type double leads to effects like:
03. - 0.2 ~= 0.1
Then check "almost equal" by:
limit = eps(max(max(abs(a(:)), abs(b(:)))));
% or: eps(max(abs(a(:)), abs(b(:))));
% or: the same times 10
a_eq_b = isequal(size(a), size(b)) & all(abs(a - b) < limit);
The choise of the limit depends on the physical meaning of the variables. There is no unique definition to distinguish measurement noise from noise caused by numerical artifacts for a tiny values.

Walter Roberson
Walter Roberson am 19 Jul. 2012

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by