MATLAB绘制不连续的一维信号

%画存在不连续的一维信号

function []=plotonedata(data,t)

%data是要画的数,t是横坐标,

[~,sizedata]=size(data);

idxzero=find(data==0);%找到数据中为0的索引

[~,nzero]=size(idxzero);%计算有多少个为0的数

%构建0与其他非零数之间的端点

idxzero1=zeros(1,nzero+1);

idxzero1(1)=1;

idxzero1(2:end)=idxzero(:);

plot(t(1:2),data(1:2),'r');

hold on;

for i=1:nzero

if idxzero1(i+1)==idxzero1(i)||(idxzero1(i+1)-idxzero1(i))<3

continue

else

plot(t(idxzero1(i)+1:idxzero1(i+1)-1),data(idxzero1(i)+1:idxzero1(i+1)-1),'r');

hold on;

end

end

if idxzero1(end)~=sizedata

plot(t(idxzero1(end)+1:end),data(idxzero1(end)+1:end),'r');

end

xlim([t(1),t(end)]);

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值