Compare values within a matrix

1 vue (au cours des 30 derniers jours)
Yewande Oni
Yewande Oni le 23 Juin 2015
Réponse apportée : Jan le 23 Juin 2015
I am comparing two matrices of different dimensions (A and B). I want to find values in B that are within 1 number unit to A. Is there anyway I can do this? B is a smaller matrix than A.
Thanks
  1 commentaire
Azzi Abdelmalek
Azzi Abdelmalek le 23 Juin 2015
What does that mean?

Connectez-vous pour commenter.

Réponses (2)

Ingrid
Ingrid le 23 Juin 2015
if you mean to find all numbers that are equal to each other when disregarding the numbers behind the comma than you can use something like this
A_r = round(A);
B_r = round(B);
C = intersect(A_r,B_r);
  1 commentaire
Yewande Oni
Yewande Oni le 23 Juin 2015
Modifié(e) : Yewande Oni le 23 Juin 2015
Hi Thanks but I want C to be a matrix of values that are within 1 unit of A, from B.
For example:
A = [31 16 8; 38 4 10]
B = [30 15 7; 34 5 14]
C would index that row 1 of A is a match to row 1 of B, because B is within +/- 1 of A
Is that possible?

Connectez-vous pour commenter.


Jan
Jan le 23 Juin 2015
A = [31 16 8; 38 4 10];
B = [30 15 7; 34 5 14];
nA = size(A, 1);
match = false(1, nA)
for iA = 1:nA
D = abs(bsxfun(@minus, A(iA, :), B)) <= 1.0;
match(iA) = any(all(D, 2));
end

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by