发现了两个MATLAB自带的曲线平滑函数:smooth和spcrv

一、smooth

自己感觉:平滑效果还可以

1.语法

(1)函数

smooth(Y)

smooth(Y,SPAN)%SPAN是滑动平均的点数,即“几点滑动平均”

smooth(Y,SPAN,METHOD)

(2)METHOD:

%loess:局部回归,加权的线性最小均方,2阶多项式模型
%rloess:'loess'的增强版,在回归过程中,给极端值分配的权重小。超出6倍绝对离差的极端值,权重为0
%'moving':滑动平均(默认)。低通滤波器,滤波器系数=span的倒数
%'lowess':局部回归。线性最小均方加权,1阶多项式模型。
%'sgolay':Savitzky-Golay filter。
%‘rlowess’:‘lowess’的增强版。在回归过程中,给极端值分配的权重小。超出6倍绝对离差的极端值,权重为0

(3)注意

对增强版的算法而言,极端值的影响可以忽略

(4)例子1(来自MATLAB)

%-----------画出原始数据和平滑后的数据----
[xx,ind] = sort(x);%排序,ind-索引,xx-排序后的数据(从小到大)
subplot(2,1,1)
plot(xx,y(ind),'b.',xx,yy1(ind),'r-')
set(gca,'YLim',[-1.5 3.5])
legend('Original Data','Smoothed Data Using ''loess''','Location','NW')
subplot(2,1,2)
plot(xx,y(ind),'b.',xx,yy2(ind),'r-')
set(gca,'YLim',[-1.5 3.5])
legend('Original Data','Smoothed Data Using ''rloess''','Location','NW')

(5)例子2(来自MATLAB)

clc,clear
load count.dat  %(24×3)一天24小时,3个交通路口的车流量
%1°滑动平均滤波器,5小时的span。平滑全部数据
c = smooth(count(:));
C1 = reshape(c,24,3);
%画图(原始数据,平滑后的数据)
subplot(3,1,1)
plot(count,':');
hold on
plot(C1,'-');
title('Smooth C1 (All Data)')
%2°相同的滤波器。分别对每列数据进行平缓。
C2 = zeros(24,3);
for I = 1:3,
    C2(:,I) = smooth(count(:,I));
end
%画图(原始数据、平滑后的数据)
subplot(3,1,2)
plot(count,':');
hold on
plot(C2,'-');
title('Smooth C2 (Each Column)')
%3°画出两次滑动后的数据的差值
subplot(3,1,3)
plot(C2 - C1,'o-')
title('Difference C2 - C1')

二、spcrv

%20160518:spcrv函数
%目前可最做到,对原来的曲线进行平滑
%原理:增加点,平滑曲线
%(自己感觉)效果:可以平滑,但是:1°无法获得平滑后的曲线方程   2°平滑前后,曲线的起始点,y值大小不同

%% ------例子0----------------
points=[0 0 1 1 0 -1 -1 0 0;0 0 0 1 2 1 0 -1 -2];
figure(3)
plot(points(1,:),points(2,:),':');
values=spcrv(points,3);
hold on;plot(values(1,:),values(2,:));hold off

%% ------------例子1---------------------------
x=[0 0.1 0.16 0.27 0.41 0.48 0.59 0.8];
y=[5 9 70 118 100 17 0 5];
y1=[22.8 22.8 22.8 22.8 22.8 22.8 22.8 22.8];
values1=spcrv([[x(1) x x(end)];[y(1) y y(end)]],3,1000);
values2=spcrv([[x(1) x x(end)];[y1(1) y1 y1(end)]],3,1000);
plot(values1(1,:),values1(2,:),'r',values2(1,:),values2(2,:),'b')

%% ----------------------例子2-----------------
x1=[18.5931 19.2468 19.58193333 19.96586667 20.0985 20.2678 30.95973333];
y=[3.66 7.15 11.74 21.53 31.24 60.51 86.5]
values = spcrv([[x1(1) x1 x1(end)];[y(1) y y(end)]],3);
plot(values(1,:),values(2,:),'k');

MATLAB曲线平滑的办法相关推荐

  1. matlab进行数据平滑,matlab数据平滑程序Word版

    <matlab数据平滑程序Word版>由会员分享,可在线阅读,更多相关<matlab数据平滑程序Word版(9页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 , ...

  2. matlab - 信号平滑、移动平均滤波

    matlab - 信号平滑.移动平均滤波 对信号进行平滑操作的重要性不言而喻 1.信号提取 matlab内置了一个这样的数据:某个地方一个月内的温度变化数据,1小时测量一次,所以总数据量是24*31. ...

  3. matlab图像处理——平滑滤波

    平滑滤波--matlab图像处理 平滑滤波的目的是消除或尽量减少噪声,改善图像的质量.假设加性噪声是随机独立分布,这样利用图像像素领域的平均或加权平均即可有效地抑制噪声干扰.从信号分析的观点来看,图像 ...

  4. matlab输出高质量图片,Matlab 画平滑轮廓 print 高质量 figure | 学步园

    Matlab 画平滑轮廓 print 高质量 figure 在matlab中,想将分割的结果以轮廓的形式显示到灰度图上,要提取.绘制平滑轮廓. 自己提取轮廓.绘制,不方便,效果差. matlab提供了 ...

  5. Python之数据分析(案例:净额成交量、矢量化、数据曲线平滑)

    文章目录 一.净额成交量 二.标量函数矢量化 三.数据曲线平滑 一.净额成交量 1.案例分析 符号数组a: [10 -20 30 40 -50] 用法:numpy.sign(a) 结果是[1 -1 1 ...

  6. python 曲线平滑_曲线平滑(smoothing)

    曲线平滑 Savitzky-Golay滤波器 It uses least squares to regress a small window of your data onto a polynomia ...

  7. Matlab许可证过期解决办法

    Matlab许可证过期解决办法 许可证到期前 许可证已经到期 电脑账户是英文名 联网激活 手动激活 电脑账户是中文名 通用办法 寒假的时候许可证快过期了一直没管,当时想着到了学校再更新,反正用不到,结 ...

  8. python 曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波)

    文章目录 1 插值法对曲线平滑处理 1.1 插值法的常见实现方法 1.2 拟合和插值的区别 1.3 代码实例 2 Savitzky-Golay 滤波器实现曲线平滑 2.1 问题描述 2.2 Savit ...

  9. matlab输出曲线颜色设置,matlab曲线颜色样式设置

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:matlab曲线颜色样式设置 问题详情:f1=figure;x=[0:pi/10:2*pi]; fori=1: 曲线颜色或样式不同呢 ...

  10. python 数据、曲线平滑处理

    python 数据.曲线平滑处理--方法总结 Savitzky-Golay 滤波器实现曲线平滑 插值法对折线进行平滑曲线处理 基于Numpy.convolve实现滑动平均滤波 数据平滑处理--log( ...

最新文章

  1. 深度学习未来发展的三种学习范式:混合学习,成分学习和简化学习
  2. mysql慢查询日志时间戳_Mysql查询在时间戳的日期范围内非常慢
  3. Linux 系统内存分析
  4. 【Linux】一步一步学Linux——set命令(222)
  5. python整形魔法_python 魔法方法
  6. 【报错解决】linux网络编程报错storage size of ‘serv_addr’ isn’t known解决办法
  7. 基于Windows下python3.4.1IDLE常用快捷键小结
  8. 利用R、Octave、NumPy和SciPy求解线性方程组
  9. 王思聪被传成“老赖”, 北京二中院:假的!
  10. Java——链表的增删查改
  11. spyder 怎么看函数定义_看漫画学C++035:自定义函数(1)
  12. Java LinkedList – Java中的LinkedList
  13. rem在响应式布局中的应用
  14. 2017年第十七届迪培思广州国际广告展会刊(参展商名录)
  15. 并发编程 - lost wakeup
  16. 【论文笔记】RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESIDUAL MLP FRAMEWORK
  17. 用文本编辑器编译cs文件
  18. 宽带显示不能建立到远程计算机,宽带连接错误820:不能建立到远程计算机的连接 正确处理办法...
  19. 剑指OFFER 03-11
  20. JSP-简单的练习省略显示长字符串

热门文章

  1. 深度学习面试题之LSTM补充
  2. winhex使用教程(详细版)
  3. 万字长文!用文本挖掘深度剖析54万首诗歌
  4. 前端安全 XSS跨站脚本攻击-CSRF跨站请求伪造攻击
  5. 【JavaEE】Spring 事务传播机制
  6. 如何将超大文件传输给别人,超大文件如何传输
  7. steam错误代码 -118 ; 443/80或其他端口被占用,请关闭占用该端口的进程后再点击启动服务 ; 关闭端口进程
  8. 【洛谷试炼场】普及练习场——贪心
  9. SRP Batch合批失败
  10. Unity URP/SRP可编程渲染管线