用matlab如何求出一个数组中最接近某个数的两个数的下标??

2024-11-27 10:38:31
推荐回答(2个)
回答1:

A= [189 188 187 184 178 169 155 137 118 99 80 64 51 39 30 10 12 15 20 30 44 63 86 112 136 157 171 180 185 189 190 190 191];
B=abs(A-82);
[x,index]=sort(B);
A1=[A(index(1)) A(index(2))]
A2=[index(1) index(2)]

A1是最接近的两个数,A2是这两个数的下标!

祝你学习愉快!

回答2:

clear all
clc

arr = [189 188 187 184 178 169 155 137 118 99 80 64 51 39 30 10 12 15 20 30 44 63 86 112 136 157 171 180 185 189 190 190 191];
[a,b] = size(arr);
arr(b+1)=82; %把元素82添加到数组中去
sorted_arr = sort(arr);
[a,b] = size(sorted_arr);
for i = 1: b
if( sorted_arr(i) == 82)
index = i;
break;
end
end
index1 = index-1;
index2 = index+1;
disp('82旁边的两个数是:')
num1 = sorted_arr(index1)
num2 = sorted_arr(index2)
disp('82旁边的两个数的下标是:')
index1
index2