A =
0.75
0.6
0.62
0.51
0.53
0.48
Run Code Online (Sandbox Code Playgroud)
在这样的数组中,如何计算最接近给定数字的x个值的索引?例如:
x = 0.5 %Given number
y = 3; %Number of values closest to (x) to extract
Run Code Online (Sandbox Code Playgroud)
在这里,我们希望将三个最接近的值提取到0.5 - 0.51,0.53和0.48.
[~,I] = min(abs(data-b));
c = data(I);
Run Code Online (Sandbox Code Playgroud)
我到目前为止,但这只提取一个值 - 绝对最接近.
A = [0.75
0.6
0.62
0.51
0.53
0.48];
x = 0.5 %Given number
y = 3; %Number of values closest to (x) to extract
[~,c] = sort(abs(A-x));
yclosest=A(c(1:y));
Run Code Online (Sandbox Code Playgroud)
这使用第二个输出sort来索引原始数组A.首先x从数组中减去数字A并取绝对值,然后对其进行排序并取最小y数字并使用它们进行索引A.