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

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 18 Dez. 2012

0 Stimmen

[junk, Aidx] = min(abs(bsxfun(@minus,A.',B)));

3 Kommentare

Joe Abraham
Joe Abraham am 18 Dez. 2012
awesome. can u please tell me what this code does?
@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".
Walter Roberson
Walter Roberson am 18 Dez. 2012
@minus rather than @mtimes, but yes.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

kate hughes
kate hughes am 21 Okt. 2014

0 Stimmen

Just to be clear this doesn't work on matrices or arrays of different size, does anyone know what does?

Kategorien

Mehr zu Entering Commands finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by