matlab基本函数find

Posted cloud-ken

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab基本函数find相关的知识,希望对你有一定的参考价值。

一起来学演化计算-matlab基本函数find

觉得有用的话,欢迎一起讨论相互学习~Follow Me

  • 找到非零元素的索引和值

    语法

  • k = find(X)
    • k = find(X)返回一个向量,其中包含数组X中每个非零元素的 线性索引
    • 如果X是一个向量,那么find返回一个与X方向相同的向量
    • 如果X是一个多维数组,那么find返回结果的线性索引的列向量
    • 如果X不包含非零元素或为空,则find返回一个空数组
  • k = find(X,n) k = find(X,n)返回与X中的非零元素对应的前n个索引
  • k = find(X,n,direction) k = find(X,n,direction),其中direction为‘last‘,查找X中的最后n个非零元素
  • [row,col] = find( ___ ) 使用前面语法中的任何输入参数返回数组X中每个非零元素的行和列下标
  • [row,col,v] = find( ___ ) 返回向量v,其中包含X的非零元素

    示例

    找到矩阵中的零元素和非零元素

X = [1 0 2; 0 1 1; 0 0 4]
X =

     1     0     2
     0     1     1
     0     0     4

k = find(X)
k =

     1
     5
     7
     8
     9
% 顺序是从上往下从左至右进行排列的
k2 = find(~X)
k2 =

     2
     3
     4
     6

找到满足特定条件的元素

X = magic(4)
X =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

k = find(X<10,5)
k =

     2
     3
     4
     5
     7

X(k)
ans =

     5
     9
     4
     2
     7

元素等于特定数值

  • 等于特定的数值使用"==" 整型数值的情况
x = 1:2:20
x =

     1     3     5     7     9    11    13    15    17    19

k = find(x==13)
k =

     7
  • 要查找非整数值,请使用基于数据的容差值。否则,由于浮点舍入错误,结果有时是一个空矩阵
y = 0:0.1:1
y =

  Columns 1 through 7

         0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000

  Columns 8 through 11

    0.7000    0.8000    0.9000    1.0000

k = find(y==0.3)
k =

   Empty matrix: 1-by-0

k = find(abs(y-0.3) < 0.001)
k =

     4

寻找最后几个非零项目

X = magic(6);
X(1:2:end) = 0 % 索引从左上角往下后往右
X =

     0     0     0     0     0     0
     3    32     7    21    23    25
     0     0     0     0     0     0
     8    28    33    17    10    15
     0     0     0     0     0     0
     4    36    29    13    18    11
% 寻找最后几个非零元素的索引
k = find(X,4,'last')
k =

    30
    32
    34
    36

寻找满足多约束

  • 找出4×4矩阵中大于0小于10的前三个元素。指定两个输出,将行和列下标返回给元素
X = [18 3 1 11; 8 10 11 3; 9 14 6 1; 4 3 15 21]
X =

    18     3     1    11
     8    10    11     3
     9    14     6     1
     4     3    15    21

[row,col] = find(X>0 & X<10,3)
row =

     2
     3
     4


col =

     1
     1
     1

非零元素的下标和值

  • 求3×3矩阵中的非零元素。指定三个输出来返回行下标、列下标和元素值
X = [3 2 0; -5 0 7; 0 0 1]
X =

     3     2     0
    -5     0     7
     0     0     1

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

     1
     2
     1
     2
     3


col =

     1
     1
     2
     3
     3


v =

     3
    -5
     2
     7
     1

输入参数

技术图片

输出参数

技术图片

以上是关于matlab基本函数find的主要内容,如果未能解决你的问题,请参考以下文章

数学建模培训二 ---- matlab的基本应用

关于VBA的Find函数

Matlab基本函数-conj函数

matlab find函数

MATLAB从入门到精通:基本矩阵运算-矩阵的基本方法和函数

MATLAB从入门到精通:基本矩阵运算-矩阵的基本方法和函数