matlab find函数
发布网友
发布时间:2022-04-20 19:35
我来回答
共4个回答
热心网友
时间:2023-09-23 20:57
举个例子讲下find函数的用法:
例如A=[1 2 3;4 5 6;7 8 9]
1 2 3
4 5 6
7 8 9
[m n]=find(A<4)
将m和n合并看[m n],为:
1 1
1 2
1 3
即(1,1),(1,2),(1,3)
也就是说A矩阵中(1,1),(1,2),(1,3)处元素小于4.
find函数是找出矩阵A中满足一定条件的元素,返回的为这些元素的行列标号,分别将这些满足要求的元素的行标号存于m向量中,满足要求的元素的列标号存于向量n中,且m和n存储的元素标号是对应的。
热心网友
时间:2023-09-23 20:58
功能:
找到非零元素的索引和值
语法:
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) 或 ind = find(X, k, 'first') 返回第一个非零元素k的索引值。
k必须是一个正数,但是它可以是任何数字数值类型。
热心网友
时间:2023-09-23 20:58
建议你在命令窗口输入 doc find,出来的帮助文件介绍得很清楚。
[C,index]=find(a>=max(a)),对于这句指令,首先得清楚max(a),max(a)好像是求矩阵每一列的最大值,返回一个行向量,你给的a是单行矩阵,max(a)就返回其中的最大值。然后是find(),即寻找a中大于等于最大值的元素,C是满足条件的元素,index是元素在矩阵中的行列位置……不知道这样解答你清不清楚,总之很多指令的用法都可以在帮助文件里面找到的
热心网友
时间:2023-09-23 20:59
从你的需要查找的数据来看,语句u=find(a>=max(a))所得到的应该只是得到a向量中最大值所在原始向量中的序号。
对于行向量或列向量,u=find(a>=max(a))得到的都只是一个值,a(u)都代表的是这个值,我刚试了下没出现楼主出现的问题。