简单的滑动平均算法matlab代码

分享一个自编的滑动平均代码,和matlab自带的smooth效果一致,直接上代码:

function sm=MA(data,N)
L=length(data);
if rem(N,2)==0
   N=N+1; 
end
for i=1:L
    if i==1
        sm(i,:)=data(i);
    elseif i==L
        sm(i,:)=data(end);
    elseif i>1&&i<=floor(N/2)
        sm(i,:)=mean(data(1:(i+i-1))); 
    elseif i<L&&i>=L-floor(N/2)
        sm(i,:)=mean(data(end:-1:(i-(L-i))));
    else
        sm(i,:)=mean(data(i-floor(N/2):(i+floor(N/2))));   
    end
end
end
clc;
clear;
close all;
data=dlmread('文件地址');
figure
plot(data,'g');
hold on
sm=smooth(data,5);
plot(sm,'r');
hold on
sm2=MA(data,5);
plot(sm2,'--b');
hold on

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值