matlab中find函数的使用说明
matlab中如何统计一个矩阵M中零的个数
size(find(M==0),1)
原文:http://blog.sina.com.cn/s/blog_707b64550100rbh3.html
find
找到非零元素的索引和值
语法:
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. ind = find(X)
找出矩阵X中的所有非零元素,并将这些元素的线性索引值(linear indices:按列)返回到向量ind中。
如果X是一个行向量,则ind是一个行向量;否则,ind是一个列向量。
如果X不含非零元素或是一个空矩阵,则ind是一个空矩阵。
2. ind = find(X, k) 或 3. ind = find(X, k, 'first')
返回第一个非零元素k的索引值。
k必须是一个正数,但是它可以是任何数字数值类型。
4. ind = find(X, k, 'last')
返回最后一个非零元素k的索引值。
5. [row,col] = find(X, ...)
返回矩阵X中非零元素的行和列的索引值。
这个语法对于处理稀疏矩阵尤其有用。
如果X是一个N(N>2)维矩阵,col包括列的线性索引。
例如,一个5*7*3的矩阵X,有一个非零元素X(4,2,3),find函数将返回row=4和col=16。也就是说,(第1页有7列)+(第2页有7列)+(第3页有2列)=16。
6. [row,col,v] = find(X, ...)
返回X中非零元素的一个列或行向量v,同时返回行和列的索引值。
如果X是一个逻辑表示,则v是一个逻辑矩阵。
输出向量v包含通过评估X表示得到的逻辑矩阵的非零元素。
例如,
A= magic(4)
A =
16
2
3 13
5
11
10
8
9
7
6 12
4
14
15
1
[r,c,v]= find(A>10);
r', c', v'
ans =
1
2
4
4
1
3
(按列)
ans =
1
2
2
3
4
4 (按列)
ans =
1
1
1
1
1
1
这里返回的向量v是一个逻辑矩阵,它包含N个非零元素,N=(A>10)
例子:
例1
X = [1 0 4 -3 0 0 0 8 6];
indices = find(X)
返回X中非零元素的线性索引值。
indices =
1
3
4
8
9
例2
你可以用一个逻辑表达方式定义X。例如
find(X
> 2)
返回X中大于2的元素的相对应的线性索引值。
ans =
3
8
9
例3
下面find指令
X = [3 2 0; -5 0 7; 0 0 1];
[r,c,v] = find(X)
返回X中非零元素行索引值的向量
r =
1
2
1
2
3
X中非零元素列索引值的向量
c =
1
1
2
3
3
包含X中非零元素的向量
v =
3
-5
2
7
1
(按列)
例4
下列表示
[r,c,v] = find(X>2)
返回包含X中非零元素的行索引值的向量
r =
1
2
包含X中非零元素的列索引值的向量
c =
1
3
包含N=(X>2)非零元素的逻辑矩阵
v =
1
1
记住,当你用find指令处理一个逻辑表达的时候,输出向量v不包含输入矩阵的非零元素的索引值。而是包含评估逻辑表达之后返回的非零值。
例5
在向量上的一些操作
x = [11 0
33 0 55]';
find(x)
ans =
1
3
5
find(x == 0)
ans =
2
4
find(0 < x & x <
10*pi)
ans =
1
例6
对于矩阵
M = magic(3)
M =
8
1
6
3
5
7
4
9
2
find(M > 3, 4)
返回前四个M>3的索引值
ans =
1
3
5
6
例7
如果X是一个全零向量,find(X)返回一个空矩阵。
例如indices = find([0;0;0])
indices =
Empty matrix: 0-by-1
翻译可能有误,欢迎批评指正
matlab中find函数的使用说明的更多相关文章
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- matlab中subplot函数的功能
转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...
- 【原创】Matlab中plot函数全功能解析
[原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...
- matlab 中max函数用法
Matlab中max函数在矩阵中求函数大小的实例如下:(1)C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的 ...
- Matlab中plot函数全功能解析
Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName ...
- matlab中cumsum函数
matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 格式一:B = cumsum(A ...
- 『转载』Matlab中fmincon函数获取乘子
Matlab中fmincon函数获取乘子 一.输出结构 [x,fval,exitflag,output,lambda] = fmincon(......) 二.结构说明 lambda结构 说 ...
- matlab中norm函数的用法
格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM Matrix or vecto ...
- matlab中fprintf函数的具体使用方法
matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...
随机推荐
- BZOJ1597 USACO2008土地购买
斜率优化DP. #include<bits/stdc++.h> using namespace std; ; long long f[N],n,cnt,q[N]; ; bool v[N]; ...
- [BZOJ2815][ZJOI2012]灾难(拓扑排序/支配树)
支配树目前只见到这一个应用,那就不独分一类,直接作为拓扑排序题好了. 每个点向所有食物连边,定义fa[x]为x的支配点,即离x最近的点,满足若fa[x]灭绝,则x也要灭绝. 这样,将fa[x]向x连边 ...
- Curl 及 Curl的使用介绍
Curl 简介 Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 1) 二话不说,先从这里开始吧! $ curl http://www.linuxidc.com 回车之后,www ...
- bzoj 3240 矩阵乘法+十进制快速幂
首先,构造出从f[][i]->f[][i+1]的转移矩阵a,和从f[i][m]->f[i+1][1]的转移矩阵b, 那么从f[1][1]转移到f[n][m]就是init*(a^(m-1)* ...
- python MySQL 获取全部数据库(DATABASE)名、表(TABLE)名
import MySQLdb #connect try: conn = MySQLdb.connect( host = "localhost", user = "root ...
- 2016 UESTC Training for Data Structures 题解
题解在下已经写过一次了,所以就不再写了,下面只有代码 题解下载(1):http://pan.baidu.com/s/1hsAUjMs 题解下载(2):http://pan.baidu.com/s/1m ...
- Git_创建与合并分支
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...
- UIwebview 文件的下载与保存,以及mp3文件的播放
这里只是说说异步 单线程下载与文件的保存 以下载一个mp3文件并保存为例: -(void)loading { //设置文件下载地址 NSString *urlString = [NSString st ...
- SyncTrayzor -- Windows tray utility / filesystem watcher / launcher for syncthing
SyncTrayzor is a little tray utility for Syncthing on Windows. It hosts and wraps Syncthing, making ...
- 提交改动到 github 远程服务器,怎么跳过要求输入密码的步骤
新机器上将工程改动提交到 github 服务器时,发现每次都要输入密码,这个有点儿小烦人,怎么解决这个问题呢? 首先,切换到工程根目录的 .git 隐藏目录,用 TextEdit 打开 config ...