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)
ML
ML on 25 May 2022
Commented: ML on 25 May 2022
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)

Community Treasure Hunt

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

Start Hunting!