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

3 visualizaciones (últimos 30 días)
V.D-C
V.D-C el 10 de Mzo. de 2020
Editada: V.D-C el 11 de Mzo. de 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 ?
Thanks in advance !

Respuestas (1)

Adam
Adam el 10 de Mzo. de 2020
Editada: Adam el 10 de Mzo. de 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 comentario
V.D-C
V.D-C el 11 de Mzo. de 2020
Editada: V.D-C el 11 de Mzo. de 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

Iniciar sesión para comentar.

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by