matlab 中 find() 函数用法
一、 功能:
寻找非零元素的索引和值
二、相关函数语法:
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, ...)
三、说明:
index= find(X)
找出矩阵X中的所有非零元素,并将这些元素的线性索引值(linear indices:按列)返回到向量index中。
如果X是一个行向量,则index是一个行向量;否则,index是一个列向量。
如果X不含非零元素或是一个空矩阵,则index是一个空矩阵。
index = find(X, k) 或 3. index = find(X, k, 'first')
找到前K个不为0的线性索引值。k必须是一个正数,但是它可以是任何 数字数值类型。
index = find(X, k, 'last')
找到后k个不为零元素的线性索引值。
[row,col] = find(X, ...)
返回矩阵X中非零元素的行和列的索引值。这个语法对于处理稀疏矩阵 尤其有用。
如果X是一个N(N>2)维矩阵,col包括列的线性索引。
[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() 函数用法的更多相关文章
- matlab 中max函数用法
Matlab中max函数在矩阵中求函数大小的实例如下:(1)C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的 ...
- MATLAB中cell函数用法
cell元包是matlab中提供的一种数据类型,功能强大. 关于cell的创建: 1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}&q ...
- Matlab中Rand()函数用法
一.理论准备 matlab函数randn:产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数. 用法:Y = randn(n),返回一个n*n的随机项的矩阵.如果n不是 ...
- MATLAB中stem函数用法
stem(Y) 将数据序列Y从x轴到数据值按照茎状形式画出,以圆圈终止.如果Y是一个矩阵,则将其每一列按照分隔方式画出. stem(X,Y)在X的指定点处画出数据序列Y. stem(...,'fil ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- matlab中norm函数的用法
格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM Matrix or vecto ...
- matlab中repmat函数的用法(堆叠矩阵)
matlab中repmat函数的用法 B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p...]) 这是一个处理大矩阵且内容有重复时使用 ...
- Matlab中imfilter()函数的用法
Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波.用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,... ...
- MATLAB中“fitgmdist”的用法及其GMM聚类算法
MATLAB中“fitgmdist”的用法及其GMM聚类算法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 高斯混合模型的基本原理:聚类——GMM,MA ...
随机推荐
- 使用nutz框架,找不到入口函数,访问Url报404
案例 今天在跟着nutz框架教程去配置demo时,发现访问URL找不到入口函数,出现了Search mapping for path=/user/count : NOT Action match 异常 ...
- SystemVerilog搭建APB_I2C IP 层次化验证平台
一.前言 近期疫情严重,身为社畜的我只能在家中继续钻研技术了.之前写过一篇关于搭建FIFO验证平台的博文,利用SV的OOP特性对FIFO进行初步验证,但有很多不足之处,比如结构不够规范.验证组件类不独 ...
- BaseAdapter的三种表达式分析,startActivityForResult的使用
(一)BaseAdapter的三种表达式: ①逗比式: public View getView(int position, View convertView, ViewGroup parent) { ...
- centos7 配置虚拟交换机(物理交换机truck端口设置)(使用brctl)
转自:http://blog.csdn.net/qq_21398167/article/details/46409503 虚拟交换机配置 inux VLAN配置(vconfig) 安装vlan(vco ...
- OpenCV3入门(五)图像的阈值
1.图像阈值与二值化 阈值是一种简单的图像分割方法,一幅图像包括目标物体(前景).背景还有噪声,要想从数字图像中直接提取出目标物体,可以设定一个像素值即阈值,然后用图像的每一个像素点和阈值做比较,给出 ...
- 每日一练PAT_B_PRAC_1005斐波那契凤尾
NowCoder号称自己已经记住了1-100000之间所有的斐波那契数.为了考验他,我们随便出一个数n,让他说出第n个斐波那契数.当然,斐波那契数会很大.因此,如果第n个斐波那契数不到6位,则说出该数 ...
- 🔥SpringBoot图文教程2—日志的使用「logback」「log4j」
有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...
- webdriver的常用方法
webdriver的常用方法 click():点击元素 clear():清除文本 send_keys(value):模拟按键输入 # -*- coding:utf-8 -*- from seleniu ...
- 未来JDK中将不再包含JDBC-ODBC桥
今天才发现一个重要问题,java中居然没有这个桥了.让初学者真的泪流了! 甲骨文公司主要技术人员.JDBC规范领导者Lance Andersen今天在博客中称,从Java SE 8(java 1.8版 ...
- 记一个实时Linux的中断线程化问题
背景 有一个项目对实时性要求比较高,于是在linux内核上打了RT_PREEMPT补丁. 最终碰到的一个问题是,芯片本身性能不强,CPU资源不足,急需优化. 初步分析 看了下cpu占用率,除了主应用之 ...