How can I get my function that calculates distance between data and user input with sort data and closest data set from file

1 visualización (últimos 30 días)
This simple function is able to get data from 'somedata.xlsx' file and takes input from user and computes the distance between them. I am wondering how I can get this function to sort the the computed distance in increasing order, and grab the first 2.
Here is the file data and my input was [2, 5, 7] and the answer is
2.4495
5.3852
4.5826
so aside from computinf I want it to return:
return increasing order
2.4495
4.5826
returned data sets
3 6 9
6 4 5
function x = computedDist(filename, input)
filedata = readmatrix (filename)
x = vecnorm(filedata - input,2,2);
% get computations increasing order
%grab and retuen first in increasing order data sets
end

Respuesta aceptada

Stephen23
Stephen23 el 25 de Mayo de 2022
V = [2,5,7];
M = readmatrix('somedata.xlsx')
M = 3×3
3 6 9 5 7 3 6 4 5
D = vecnorm(M-V,2,2)
D = 3×1
2.4495 5.3852 4.5826
[X,Y] = mink(D,2)
X = 2×1
2.4495 4.5826
Y = 2×1
1 3
Z = M(Y,:)
Z = 2×3
3 6 9 6 4 5

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices 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