Compare values within a matrix

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

Answers (2)

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 Comment

Yewande Oni
Yewande Oni on 23 Jun 2015
Edited: Yewande Oni on 23 Jun 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?

Sign in to comment.

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

Categories

Tags

Asked:

on 23 Jun 2015

Answered:

Jan
on 23 Jun 2015

Community Treasure Hunt

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

Start Hunting!