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

1 件のコメント

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 6 月 23 日
What does that mean?

サインインしてコメントする。

回答 (2 件)

Ingrid
Ingrid 2015 年 6 月 23 日

0 投票

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 件のコメント

Yewande Oni
Yewande Oni 2015 年 6 月 23 日
編集済み: Yewande Oni 2015 年 6 月 23 日
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?

サインインしてコメントする。

Jan
Jan 2015 年 6 月 23 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

質問済み:

2015 年 6 月 23 日

回答済み:

Jan
2015 年 6 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by