一、 功能:

寻找非零元素的索引和值

二、相关函数语法:

  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的值。

matlab 中 find() 函数用法的更多相关文章

  1. matlab 中max函数用法

    Matlab中max函数在矩阵中求函数大小的实例如下:(1)C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的 ...

  2. MATLAB中cell函数用法

    cell元包是matlab中提供的一种数据类型,功能强大. 关于cell的创建: 1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}&q ...

  3. Matlab中Rand()函数用法

    一.理论准备 matlab函数randn:产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数. 用法:Y = randn(n),返回一个n*n的随机项的矩阵.如果n不是 ...

  4. MATLAB中stem函数用法

    stem(Y) 将数据序列Y从x轴到数据值按照茎状形式画出,以圆圈终止.如果Y是一个矩阵,则将其每一列按照分隔方式画出. stem(X,Y)在X的指定点处画出数据序列Y.  stem(...,'fil ...

  5. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  6. matlab中norm函数的用法

    格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM   Matrix or vecto ...

  7. matlab中repmat函数的用法(堆叠矩阵)

    matlab中repmat函数的用法 B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p...]) 这是一个处理大矩阵且内容有重复时使用 ...

  8. Matlab中imfilter()函数的用法

    Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波.用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,... ...

  9. MATLAB中“fitgmdist”的用法及其GMM聚类算法

    MATLAB中“fitgmdist”的用法及其GMM聚类算法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 高斯混合模型的基本原理:聚类——GMM,MA ...

随机推荐

  1. springIOC源码接口分析(一):BeanFactory

    一 应用场景 BeanFactory接口定义了IOC容器的最基本功能,提供了容器应该具有的功能规范,所有的容器都应该实现这个接口 BeanFactory设计了getBean方法用来获取容器中的Bean ...

  2. 解决python报错:ImportError: No module named shutil_get_terminal_size 的方法

    我的环境:Ubuntu 16.04.5 LTS 修改这个文件: $HOME/.local/lib/python2.7/site-packages/IPython/utils/terminal.py 这 ...

  3. 暑假第三周总结(学习HDFS操作方法)

    本周由于自己出去玩,以及家里的各种事也没好好看书,就对HDFS的一些常用的shell命令进行了学习与应用,观看了林子雨老师关于HDFS的视频,对HDFS的一些存储的原理.规则进行了一定的了解.对uba ...

  4. 如何准备Java面试?如何把面试官的提问引导到自己准备好的范围内?

    Java能力和面试能力,这是两个方面的技能,可以这样说,如果不准备,一些大神或许也能通过面试,但能力和工资有可能被低估.再仔细分析下原因,面试中问的问题,虽然在职位介绍里已经给出了范围,但针对每个点, ...

  5. WTL Hello World

    构建最简单的WTL Hello World程序,基于:WTL91_5321_Final + VS2013 + WIN7 添加->新建项目 为了简单起见,我们删除一些button和对应的处理代码( ...

  6. Codeforces_729_E

    http://codeforces.com/problemset/problem/729/E 存在的数必须连续,若不连续,从最后选人来补,注意根不是0和其他点是0的情况. #include<io ...

  7. Python应用——多变量的灵活处理

    本文始发于个人公众号:TechFlow,原创不易,求个关注 我们都知道Python是一个非常灵活的语言,以至于如果它不是你的第一门语言,你会发现它总能给你各种各样的惊喜,让你忍不住惊叹:woc,还有这 ...

  8. CVE-2019-0232:Apache Tomcat RCE复现

    CVE-2019-0232:Apache Tomcat RCE复现 0X00漏洞简介 该漏洞是由于Tomcat CGI将命令行参数传递给Windows程序的方式存在错误,使得CGIServlet被命令 ...

  9. 并发编程的基石——AQS类

    本博客系列是学习并发编程过程中的记录总结.由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅. 并发编程系列博客传送门 本文参考了[Java多线程进阶(六)-- J.U.C之l ...

  10. html input元素的所有type属性

    <input /> 属性 type="text" 输入框的类型为文本 type="password" 输入框的类型为密码 type="ra ...