問題描述:對向量,想從中找到等于或接近某個數、或滿足一定範圍的元素們的下标?
【等于某個數: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的元