问题描述:对向量,想从中找到等于或接近某个数、或满足一定范围的元素们的下标?
【等于某个数:find(a==8)】
【求向量最大值 最小值 的上下标】
函数:根据某一标量指标求取向量中取得该指标最大值的元素,若存在多个则只取指标最大中的第一个
maxmltiply=find(colm4==max(colm4));
if isa(maxmltiply,'numeric')
mlplymax=maxmltiply(1);
else
mlplymax=maxmltiply;
end
【最接近某个数:排序】:先求绝对值,再排序
例如:查找向量A中最接近82的前后两个元素及其下标。
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是这两个数的下标!
【find】函数:用于返回所需要元素的所在位置 (位置的判定:在矩阵中,第一列开始,自上而下,依次为1,2,3...,然后再从第二列,第三列依次往后数) 。
find(A)返回矩阵A中非零元素所在位置
>> A = [1 0 4 -3 0 0 0 8 6]; >> X = find(A) X = 1 3 4 8 9 find(A>5)返回矩阵A中大于5的元素所在位置 >> find(A>5) ans = 8 9 [i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,列j,和元素的值v(按所在位置先后顺序输出) >> A=[3 2 0; -5 0 7; 0 0 1]; >> [i,j,v]=find(A) i = 1 2 1 2 3 j = 1 1 2 3 3 v = 3 -5 2 7 1 find(A>m,4)返回矩阵A中前四个数值大于m的元