matlab 中 find() 函數用法

来源:https://www.cnblogs.com/qw-blog/archive/2020/02/21/12343711.html
-Advertisement-
Play Games

一、 功能: 尋找非零元素的索引和值 二、相關函數語法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find(X, k, 'last') 5. [row,col] = find(X, ...) ...


一、 功能:

尋找非零元素的索引和值

二、相關函數語法:

  1. ind = find(X)

  2. ind = find(X, k)

  3. ind = find(X, k, 'first')

  4. ind = find(X, k, 'last')

  5. [row,col] = find(X, ...)

  6. [row,col,v] = find(X, ...)

三、說明:

  1. index= find(X)

    找出矩陣X中的所有非零元素,並將這些元素的線性索引值(linear indices:按列)返回到向量index中。

    如果X是一個行向量,則index是一個行向量;否則,index是一個列向量。

    如果X不含非零元素或是一個空矩陣,則index是一個空矩陣。

  2. index = find(X, k) 或 3. index = find(X, k, 'first')

    找到前K個不為0的線性索引值。k必須是一個正數,但是它可以是任何 數字數值類型。

  3. index = find(X, k, 'last')

    找到後k個不為零元素的線性索引值。

  4. [row,col] = find(X, ...)

    返回矩陣X中非零元素的行和列的索引值。這個語法對於處理稀疏矩陣 尤其有用。

    如果X是一個N(N>2)維矩陣,col包括列的線性索引。

  5. [row,col,v] = find(X, ...)

    返回X中非零元素的一個列或行向量v,同時返回行和列的索引值。如果X是一個邏輯表示,則v是一個邏輯矩陣。輸出向量v包含通過評估X表示得到的邏輯矩陣的非零元素。

四、解釋

I.用法一:

b=find(a),a是一個矩陣,查詢非零元素的位置,如果X是一個行向量,則返回一個行向量;否則,返回一個列向量。如果X全是零元素或者是空數組,則返回一個空數組,例子如下所示,也可以用b=find(a>2),這句的意思是在a中找到比較2大的元素

a=[1 3;0 4]
b=find(a)

輸出

a =

 1     3
 0     4

b =

 1
 3
 4

解釋一下為什麼會得到b的值

a(1)

ans =

 1


 a(2)

ans =

 0

II.用法二:

b=find(a,2),找出a中最先出現的2個不為零的數,a是你所要找的矩陣,2參數是指數量所下

a=[1 3;0 4]
b=find(a,2)

輸出

a =

 1     3
 0     4

b =

 1
 3

III.用法三:

c=find(a,2,'first')用法和二基本一樣,如下

a=[1 3;0 4]
b=find(a,2,'first')

輸出

a =

 1     3
 0     4

b =

 1
 3

IV.用法四:

c=find(a,2,'last') 這句的意思是從最後一個非零元素起,找2個不為零的元素,如下

a=[1 3;0 4]
b=find(a,2,'last')

輸出

a =

 1     3
 0     4

b =

 3
 4   

V.用法五:
[a1,a2]=find(a),找出a矩陣中非零元素所在行和列,並存在a1,a2中

a=[1 3;0 4]
[a1,a2]=find(a)

輸出

a =

 1     3
 0     4

a1 =

 1
 1
 2

a2 =

 1
 2
 2

VI.用法六:

[a1,a2,v]=find(a),找出矩陣中非零元素所在行和列,並存在a1,a2中,並將結果放在v中,如下所示,這個得到的v是a中第幾行第幾列的**非零**元素

a=[1 3;0 4]
[a1,a2,val]=find(a)

輸出

a =

 1     3
 0     4

a1 =

 1
 1
 2

a2 =

 1
 2
 2

val =

 1
 3
 4

VII.用法七:

[a1,a2,val]=find(a>2),返回一個單位列向量,這裡不滿足a>2,如下所示

a=[1 3;0 4]
[a1,a2,val]=find(a>2)

a =

 1     3
 0     4

a1 =

 1
 2

a2 =

 2
 2

val =

2×1 logical 數組

1
1

val就是說矩陣中第1行第2列和第2行第2列的元素滿足X>2為真用1來表示。

註意一下VI與VII的區別

X = [4 2 0; -4 0 6; 0 0 2]
[a1,a2,val1]=find(X)
[a3,a4,val2]=find(X>2)

輸出

X =

 4     2     0
-4     0     6
 0     0     2

a1 =

 1
 2
 1
 2
 3

a2 =

 1
 1
 2
 3
 3

val1 =

 4
-4
 2
 6
 2

a3 =

 1
 2

a4 =

 1
 3

val2 =

2×1 logical 數組

1
1

*註意val1的值。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 常見的css選擇器包含:常用選擇器、基本選擇器、層級選擇器、偽類選擇器、屬性選擇器,其中常用選擇器分為:1.html選擇符*{}//給頁面上所有的標簽設置模式;2.類選擇符.hcls{}//給class是hcls的一類標簽設置模式;3.id選擇符#h3{}//給id是h3的標簽設置樣式;4.關聯選擇... ...
  • 通過學習CSS3游戲介紹、CSS樣式和優先順序章節,瞭解到html5+css3+js不光可以實現動畫,其次可以往這個游戲與建模方向發展,更多css3特效訪問Gerard Ferrandez on CodePen其次html嵌套css樣式分為3種:內聯、內部、外部、寫法上推薦的是外部,便於代碼復用性;樣... ...
  • 我們可以自定義bean的初始化和銷毀方法,這裡所指的的初始化和bean的構造不同,初始化是在bean構造完成後,對bean內部的屬性或一些邏輯進行初始化。 首先要弄清一些概念: 構造(對象創建) 單實例:在容器啟動時創建對象 多實例:在每次獲取的時候創建對象 初始化:在對象創建後調用 銷毀: 單實例 ...
  • ```int main(){ return 0;}``` ...
  • 概率論和數理統計實驗(matlab中實現) 一.伯努利分佈 R=binornd(N,P); //N,P為二次分佈的倆個參數,返回服從參數為N,P的二項分佈的隨機數,且N,P,R的形式相同。 R=binornd(N,P,m); //m是一個1 2向量,它為指定的隨機數的個數,其中N,P分別代表返回值R ...
  • 一、JS加密之“鹽”​ 1.salt屬性“鹽":多用於密碼學,比如我們的銀行卡是六位密碼,但是實際上在銀行的系統里,我們輸入密碼後,會給原始的密碼添加若幹字元,形成更加難以破解的密碼。這個過程我們稱為”加鹽“。 """ 處理JS加密 """ import time,random ​ def getS ...
  • 逗號 用於生成一個長度為1的元組 因此需要將長度為1的元組中元素提取出來可以用 簡化賦值操作 最後 列印變數加 實現連續列印不換行的操作在python3中行不通了 ...
  • 一、DFT之前言部分 由於matlab已提供了內部函數來計算DFT、IDFT,我們只需要會調用fft、ifft函數就行; 二、函數說明: fft(x):計算N點的DFT。N是序列x的長度,即N=length(x); fft(x,L):計算L點的DFT。若LN,則將原序列x補0至L點,然後通過計算其L ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...