Matlab中find函数详解

Matlab中find函数详解

在Matlab中通过“help find”指令可以看到find函数的作用是
“Find indices and values of nonzero elements”,即查找非零元素的索引(可以理解为位置)和值。常见用法如下:
一、假设数组a=[1 0 3 0 0 8 8 0]
1、x=find(a)
其实x=find(a)=find(a!=0),这样便一目了然了吧,即查找数组a中不为0的元素,可以知道x的值为1、3、6、7
特殊一点的是,如果x=find(~a),那么,x= find(~a)= find(~a!=0)= find(a等于0)(“等于”应该是两个等于号但打不出来就这样看吧,下同),即查找数组a中的0元素,可以知道x的值为2、4、5、8
2、x=find(a等于8)
这个形式其实更简单了,即查找数组a中的元素8,可以知道x的值为6 、7。x=find(a等于8)中的“==”也可以换为“>”">="等等,意思一样
二、假设矩阵a=[1 0 3; 4 5 6; 0 0 8]
x=find(a)
此时find返回的结果是线性索引的列向量,即从第一列开始计数,按照1-4-0-0-5-0-3-6-8的顺序,“1”是第一个数,“4”是第二个数,……,“8”是第九个数,故可以知道x的值为1、2、5、7、8、9
其他形式同理
可以看一下下面的这个函数,如果理解了就很棒了
function [y,n]=sigadd(x1,n1,x2,n2)
n=min(min(n1),min(n2)):max(max(n1),max(n2));
y1=zeros(1,length(n));y2=y1;
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;
y=y1+y2;
其中,x1是第一个时间序列信号,n1可以理解为对应的时间,这个程序是数字信号处理中实现两个信号相加的函数,对于y1(find((n>=min(n1))&(n<=max(n1))==1))=x1这一语句,其具体含义放到评论中啦!

  • 13
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

little_boy_dodo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值