find matlab 重复_matlab中find函数的用法(这是别人写的,我觉得写地比较详细,整理的)...

其实查看find的值,最主要记得一点是:find返回的是在矩阵中的索引值,而不是返回的是矩阵中的值。

~~~~~~~~~~~~~~~~~~~~~

用法1:ind=find(x)

找出矩阵x中的所有非零元素,并将这些元素的线性索引值(linear indices:按照列向排列)返回到向量ind中。

如果x是一个行向量,则ind是一个行向量;否则,ind是一个列向量

如果x不含非零元素或是一个空矩阵,则ind是一个空矩阵

例子:

X=[1 0 4 -3 0 0 0 8 6]

indices=find(X)

indices=

1 3 4 8 9

~~~~~~~~~~~~~~~~~~~~~~~~~~

用法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中非零元素的行和列的索引值。

用法6:[row,col,v]=find(x,...)

返回x中非零元素的一个列或行向量v,同时返回行和列的索引值。

例子:

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)

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)

例子:

X = [1 0 4 -3 0 0 0 8 6];

find(X>2)

ans=3 8 9

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

X = [3 2 0; -5 0 7; 0 0 1];

[r,c,v] = find(X)

r =

1

2

1

2

3

c =

1

1

2

3

3

v =

3

-5

2

7

1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[r,c,v] = find(X>2)

r =

1

2

c =

1

3

v =

1

1

~~~~~~~~~~~~~~~~~~~~~~~~~~

x = [11 0 33 0 55]';

find(x == 0)

ans =

2

4

find(0 < x & x < 10*pi)

ans =

1

~~~~~~~~~~~~~~~~~~~~~~~~~

M = magic(3)

M =

8 1 6

3 5 7

4 9 2

find(M > 3,

4) %返回前四个M>3的索引值

ans =

1

3

5

6

~~~~~~~~~~~~~~~~~~~~~~~~

如果X是一个全零向量,find(X)返回一个空矩阵。

例如indices = find([0;0;0])

indices =

Empty matrix: 0-by-1

~~~~~~~~~~~~~~~~~~~~~~~~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值