采用find函数寻找同号元素位置存在所有行,列均在一个矩阵中,难以区分,因此采取建立中间矩阵,对该矩阵中元素赋值0的方法。消除待处理数据中的异号元素,进而提取绝对值最小元素。
%%提取两组数据中同号 且绝对值最小的元素
%data1 n行 1列
%data2 n行 4列
sigN1 = data1.*data2; %两组数据相乘 正数则同号
sigN1(sigN1>0) = 1;%同号元素位置赋值为1
sigN1(sigN1<=0) = 0;%异号元素位置赋值为0
abs_data1 = abs(data1.*sigN1);%相乘使异号元素为0
abs_data2 = abs(data2.*sigN1);
min_data = min(abs_I0N1,abs_data1);%取最小值