MATLAB之find函数用法
matlab 中 find() 函數(shù)用法
一、 功能:
**尋找非零元素的索引和值**語(yǔ)法:
ind = find(X)
ind = find(X, k)
ind = find(X, k, ‘first’)
ind = find(X, k, ‘last’)
[row,col] = find(X, …)
[row,col,v] = find(X, …)
說(shuō)明:
index= find(X)
找出矩陣X中的所有非零元素,并將這些元素的線(xiàn)性索引值(linear indices:按列)返回到向量index中。
如果X是一個(gè)行向量,則index是一個(gè)行向量;否則,index是一個(gè)列向量。
如果X不含非零元素或是一個(gè)空矩陣,則index是一個(gè)空矩陣。
index = find(X, k) 或 3. index = find(X, k, ‘first’)
找到前K個(gè)不為0的線(xiàn)性索引值。k必須是一個(gè)正數(shù),但是它可以是任何 數(shù)字?jǐn)?shù)值類(lèi)型。
index = find(X, k, ‘last’)
找到后k個(gè)不為零元素的線(xiàn)性索引值。
[row,col] = find(X, …)
返回矩陣X中非零元素的行和列的索引值。這個(gè)語(yǔ)法對(duì)于處理稀疏矩陣 尤其有用。
如果X是一個(gè)N(N>2)維矩陣,col包括列的線(xiàn)性索引。
[row,col,v] = find(X, …)
返回X中非零元素的一個(gè)列或行向量v,同時(shí)返回行和列的索引值。如果X是一個(gè)邏輯表示,則v是一個(gè)邏輯矩陣。輸出向量v包含通過(guò)評(píng)估X表示得到的邏輯矩陣的非零元素。
二、解釋
I.用法一:
b=find(a),a是一個(gè)矩陣,查詢(xún)非零元素的位置,如果X是一個(gè)行向量,則返回一個(gè)行向量;否則,返回一個(gè)列向量。如果X全是零元素或者是空數(shù)組,則返回一個(gè)空數(shù)組,例子如下所示,也可以用b=find(a>2),這句的意思是在a中找到比較2大的元素
輸出
a =
b =
134解釋一下為什么會(huì)得到b的值
a(1)ans =
1 a(2)ans =
0II.用法二:
b=find(a,2),找出a中最先出現(xiàn)的2個(gè)不為零的數(shù),a是你所要找的矩陣,2參數(shù)是指數(shù)量所下
輸出
a =
b =
13III.用法三:
c=find(a,2,‘first’)用法和二基本一樣,如下
輸出
a =
b =
13IV.用法四:
c=find(a,2,‘last’) 這句的意思是從最后一個(gè)非零元素起,找2個(gè)不為零的元素,如下
輸出
a =
b =
34V.用法五:
[a1,a2]=find(a),找出a矩陣中非零元素所在行和列,并存在a1,a2中
輸出
a =
a1 =
112a2 =
122VI.用法六:
[a1,a2,v]=find(a),找出矩陣中非零元素所在行和列,并存在a1,a2中,并將結(jié)果放在v中,如下所示,這個(gè)得到的v是a中第幾行第幾列的非零元素
輸出
a =
a1 =
112a2 =
122val =
134VII.用法七:
[a1,a2,val]=find(a>2),返回一個(gè)單位列向量,這里不滿(mǎn)足a>2,如下所示
a =
1 30 4a1 =
12a2 =
22val =
2×1 logical 數(shù)組
1
1
val就是說(shuō)矩陣中第1行第2列和第2行第2列的元素滿(mǎn)足X>2為真用1來(lái)表示。
注意一下VI與VII的區(qū)別
X = [4 2 0; -4 0 6; 0 0 2] [a1,a2,val1]=find(X) [a3,a4,val2]=find(X>2)輸出
X =
a1 =
12123a2 =
11233val1 =
4 -4262a3 =
12a4 =
13val2 =
2×1 logical 數(shù)組
1
1
注意val1的值。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的MATLAB之find函数用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信号处理之DFT、IDFT
- 下一篇: 二维矩阵与二维矩阵之间的卷积