#include"medfilt1.h"
#include <QDebug>
void medfilt1(double* DataAFNewBase, int Length,int Win,double* DataAFBaseMed)
{
int j, k;
double *DataAFMid = new double[Win]();
for (j = 0; j < Length ; j++) {
//构建中值数组
for (k = 0; k < Win; k++) {
if (((j - (Win - 1) / 2) + k < 0) || ((j - (Win - 1) / 2) + k) > (Length - 1))
DataAFMid[k] = 0;
else
DataAFMid[k] = DataAFNewBase[(j - (Win - 1) / 2)+k];
}
//将中值数组升序排序
std::sort(DataAFMid,DataAFMid+Win-1);
//将排序后中值赋给输出
DataAFBaseMed[j] =DataAFMid[k/2];
}
delete [] DataAFMid;
}
void quicksort(double* a, int begin, int end)
{
if (begin >= end)
return;
double pivot = a[begin];
int left = begin;
int right = end;
while (left < right)
{
while (left < right && a[right] >= pivot)
--right;
if (left < right)
a[left++] = a[right];
while (left < right && a[left] <= pivot)
++left;
if (left < right)
a[right--] = a[left];
}
a[right] = pivot;
quicksort(a, begin, left - 1);
quicksort(a, left + 1, end);
}
void bubblesort(double *a , int &length)
{
double buff;
#pragma omp parallel for num_threads(4)
for (int m = 0; m < length-1; m++) {
for (int n= 0; n < length - m - 1; n++) {
if (a[n] > a[n+1]) {
buff = a[n];
a[n] = a[n + 1];
a[n + 1] = buff;
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
medfilt1_medfilt1_matlab
共2个文件
h:1个
cpp:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 7 下载量 31 浏览量
2021-09-11
08:18:14
上传
评论
收藏 1KB ZIP 举报
温馨提示
对标Matlab中medfilt1函数的C语言实现
资源推荐
资源详情
资源评论
收起资源包目录
medfilt1_medfilt1_matlab_源码.zip (2个子文件)
medfilt1.cpp 2KB
medfilt1.h 536B
共 2 条
- 1
资源评论
- qq_466034212022-05-19用户下载后在一定时间内未进行评价,系统默认好评。
- m0_680823242022-03-21用户下载后在一定时间内未进行评价,系统默认好评。
- liuzhilin12332122022-09-22资源有一定的参考价值,与资源描述一致,很实用,能够借鉴的部分挺多的,值得下载。
- huntercui19882022-12-17发现一个宝藏资源,资源有很高的参考价值,赶紧学起来~
- 2301_764556282023-06-22发现一个宝藏资源,资源有很高的参考价值,赶紧学起来~
心梓
- 粉丝: 821
- 资源: 8055
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功