Compare two arrays of different length

3 次查看(过去 30 天)
I have two arrays. Lets say A = [1 5 7 10 14 17 19 22 25 26 29], B= [2 7 12 18 23 ] I want to find out the values / positions in A which are nearest to every value of B.
P.S : The resulting array should have the same length as B. Any suggestions are welcome.
Thanks

采纳的回答

Walter Roberson
Walter Roberson 2012-12-18
[junk, Aidx] = min(abs(bsxfun(@minus,A.',B)));
  3 个评论
Jan
Jan 2012-12-18
@Joe: Simply try it by splitting into parts:
A
C1 = A.'
C2 = bsxfun(@mtimes, C1, B)
C3 = abs(C2)
[C4, C5] = min(C3)
Look in the documentation for each command:
help transpose
help bsxfun
help mtimes
help abs
help min
Or read the more exhaustive documentation by replacing "help" with "doc".

请先登录,再进行评论。

更多回答(1 个)

kate hughes
kate hughes 2014-10-21
Just to be clear this doesn't work on matrices or arrays of different size, does anyone know what does?

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by