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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...