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

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

Stephen23
Stephen23 am 25 Mai 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

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by