matlab中的find函数的使用

大家好!我看过help,但有些不懂。看下面代码,我对r的理解如下:1,2为第1列非零元素的行数;1为第2列非零元素的行数;2,3为第3列非零元素的行数。v则是按列排序的非零元素数值。我这样理解对吗。
不过我对c看不懂,请指教
X =

3 2 0
-5 0 7
0 0 1
[r,c,v] = find(X)
returns a vector of row indices of the nonzero entries of X
r =
1
2
1
2
3
a vector of column indices of the nonzero entries of X
c =
1
1
2
3
3
and a vector containing the nonzero entries of X.
v =
3
-5
2
7
1

相当正确,[r,c,v] = find(X)讲的是找出X中大于0的数,列出他们所在的行,列,值。顺序是先找第一列的从上到下,再找第二列的从上到下,依次类推。
如果是[r,c,v] = find(X>0)的话,v会变成都是1的向量,可以看做是对X>0的判断,值为1表示它是大于0的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-25
r和c一块来看。
r = 1 2 1 2 3
c = 1 1 2 3 3
就是X里面不为零的点的位置为第一行第一列,第二行第一列,第一行第二列,第二行第三列,第三行第三列(行号为r,列号为c),v为不为零的数据元素。本回答被提问者采纳
第2个回答  2019-12-18
输出是对的。因为他找到的是B(2:n,2)中的第一个元素。
你可以好好看看find函数的作用。
你如果写下面代码应该就对了:
A
=
B(2:n,2);
A(q=find(B(2:n,2)==max(abs((B(2:n,2))))))
这个输出就是第二列的第二个元素。
相似回答