1. 示例
1.1 程序
Input = [-1,1,2,3,-2];
[Positive_index,Negative_index] = Near0(Input,2) % 得到最靠近0的2个正数对应的索引以及负数对应的索引
Positive_num = Input(Positive_index) % 最靠近0的2个正数
Negative_num = Input(Negative_index) % 最靠近0的2个负数
1.2 输出
2. 函数
function [Positive_index,Negative_index] = Near0(Input,k)
% 如果只输入数组,默认k=1
if nargin == 1
k = 1;
end
% 可以一行多列输入,也可以多行一列输入
if size(Input,1) == 1
Input = Input';
end
% 最靠近0的负索引
index = find(Input<0);
data = Input(index,:);
[~,b] = sort(data,"descend");
Negative_index = index(b(1:k));
% 最靠近0的正索引
index = find(Input>0);
data = Input(index,:);
[~,b] = sort(data,"ascend");
Positive_index = index(b(1:k));