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
0 个评论
采纳的回答
Walter Roberson
2012-12-18
[junk, Aidx] = min(abs(bsxfun(@minus,A.',B)));
3 个评论
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
2014-10-21
Just to be clear this doesn't work on matrices or arrays of different size, does anyone know what does?
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Operators and Elementary Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!