Finding the row index of the closest match to a row vector in an array

9 visualizzazioni (ultimi 30 giorni)
For example
If we are having a row vector : [a b c]
and aray :
[q w e r c;
l v w e a
p w e r t];
Is there any way we can find the row index in the array closest to the defined row vector (matching 1st 3 column values or used defined columns)

Risposta accettata

Jan
Jan il 27 Gen 2021
Modificato: Jan il 27 Gen 2021
search = randi([1, 10], 1, 3);
data = randi([1, 10], 10, 4);
dist = vecnorm(data(:, 1:numel(search)) - search, 2, 2); % Auto-expand, >= R2016b
[~, match] = min(dist);
disp(search)
disp(data(match, :))
This uses the Euclidian norm to determine the distance. Maybe you want another norm.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by