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!