# Get row and column of the closest value of a matrix from a variable

4 Ansichten (letzte 30 Tage)
V.D-C am 10 Mär. 2020
Bearbeitet: V.D-C am 11 Mär. 2020
Hello,
I have a latitude vector of dimensions 17 x 1. I have a latitude matrix of dimension 300 x 300.
I would like to find the row and column of the closest value of the matrix for each one of the vector's values. I tried several codes but none of them are working.
How can I solve this problem ?
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Antworten (1)

Bearbeitet: Adam am 10 Mär. 2020
If you are using an up to date version of Matlab (scanning the release notes I think R2019a or later for the particular syntax of min used here) this should work, although I don't have time to fully test it:
a = rand(17,1);
b = rand(300);
[~, idx] = min( abs( b - reshape( a, 1, 1, [] ) ), [], [1 2], 'linear' );
[row,col] = ind2sub( [300, 300], squeeze( idx ) );
##### 1 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
V.D-C am 11 Mär. 2020
Bearbeitet: V.D-C am 11 Mär. 2020
Thank you for your answer ! The row vector looks realistic but the col vector isn't: the values grow along the vector to reach more than 5000 which is not supposed to be possible. I tried with my data and also random a and b and still got erratic values for columns.
ps: I am using 2019b

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Line Plots finden Sie in Help 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