关于MATLAB中medfilt1函数的C代码

这段C代码实现了MATLAB中medfilt1函数的功能,通过对数组的遍历,根据相邻元素的比较来过滤数据,确保每个元素被其两侧的平均值包围,从而达到平滑信号的目的。
摘要由CSDN通过智能技术生成

void medfilt(**vf1)  {

double **vf11=new double*[m];
for(i=0;i<m;++i)
{vf11[i]=new double[n];}
 for(i=0;i<m;i++)
 for(j=1;j<n-1;j++) //这里对于同一行的数字取均值
 {if(((vf1[i][j-1]>=vf1[i][j])&&(vf1[i][j-1]<=vf1[i][j+1]))||((vf1[i][j-1]<=vf1[i][j])&&(vf1[i][j-1]>=vf1[i][j+1])))
     vf11[i][j]=vf1[i][j-1];
 else if(((vf1[i][j]>=vf1[i][j-1])&&(vf1[i][j]<=vf1[i][j+1]))||((vf1[i][j]<=vf1[i][j-1])&&(vf1[i][j]>=vf1[i][j+1])))
    vf11[i][j]=vf1[i][j];
else

vf11[i][j]=vf1[i][j+1];}
//考虑0点 
for(i=0;i<m;i++)
{if(((0>=vf1[i][0])&&(0<=vf1[i][1]))||((0<=vf1[i][0])&&(0>=vf1[i][1])))
     vf11[i][0]=0;
 else if(((vf1[i][0]>=0)&&(vf1[i][0]<=vf1[i][1]))||((vf1[i][

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值