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

1 view (last 30 days)
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

Accepted Answer

Stephen23
Stephen23 on 25 May 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

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!