這裏有兩個不同的東西 - 你怎麼發現的急劇轉變,你怎麼過濾。

讓我們依次採取這些。

尖銳過渡的特點是大麴率 - 我們可以通過取輸入曲線的diff來輕鬆檢測到這一點。使用第二個參數= 2需要兩次diff,並導致「類似」二階導數 - 但它被偏移一。所以當我們發現diff(sharkfin,2)很大的點時,我們需要抵消1來得到角點。

接下來,平滑本身。有很多技巧 - 我用一個盒子函數展示一個簡單的卷積。這樣做兩次給出了一個平滑的輸入版本。通過選擇「遠離不連續性」的原始文本和「接近不連續性」的過濾版本,我們得到了你所要求的。如果你願意,你可以「混合」點 - 使用加權版本的過濾和未過濾,取決於你與角點的距離。我沒有表現出明確,但它應該很容易看到如何擴大我已經寫的代碼:

% generate a "shark fin" function:

fin = exp(-linspace(0,4,60));

shark = [fin (1-fin+fin(end))];

shark = repmat(shark, [1 3]);

D2 = diff(shark, 2);

roundMe = find(abs(D2)>0.1*max(D2))+1; % offset by 1 because second derivative

figure;

subplot(3,1,1)

plot(shark); title 'shark plot'

hold on;

plot(roundMe, shark(roundMe),'r*')

legend('input','corners found')

% take N points on either side of the sharp corners:

N = 3;

% boxplot filtered version of the curve

boxFilt = ones(1, 2*N+1)/(2*N+1);

smoothShark1 = convn(shark, boxFilt, 'same'); % box plot

% second filter - smoother

smoothShark2 = convn(smoothShark1, boxFilt, 'same');

% plot the filtered results:

subplot(3,1,2)

plot(shark)

hold on

plot(smoothShark1);

hold on

plot(smoothShark2);

xlim([114 126])

ylim([0.8,1.1])

legend('original','box','box x2')

title 'smoothed everywhere'

% Now apply filtering only to points near the discontinuity

smoothMe = zeros(size(shark));

smoothMe(roundMe)=1;

smoothMe = convn(smoothMe, boxFilt, 'same');

smoothMe(smoothMe>0)=1; % this finds N points on either side of the corner

subplot(3,1,3)

plot(shark)

finalPlot=shark;

hold on

smoothIndx = find(smoothMe);

finalPlot(smoothIndx)=smoothShark2(smoothIndx);

plot(finalPlot,'g')

plot(smoothIndx, finalPlot(smoothIndx), 'r*')

xlim([114 126])

ylim([0.8,1.1])

legend('original','smoothed','changed')

title 'smoothed only near discontinuity'

輸出:

matlab中尖号,在Matlab中函數中的一個尖角消除掉相关推荐

  1. php 時間比較,PHP用strtotime()函數比較兩個時間的大小實例詳解

    在PHP開發中,我們經常會對兩個時間的大小進行判斷,但是,在PHP中,兩個時間是不可以直接進行比較,因為時間是由年.月.日.時.分.秒組成的,所以,如果需要將兩個時間進行比較的話,我們首先要做的就是將 ...

  2. oracle中sysdate函数 ro,ORACLE常用函數

    一.to_date(欄位(字符串),格式)函數: 將字符串轉換成指定格式的date數據類型 例子: to_date('2017/11/29','yyyy/MM/dd') 二.to_char(欄位(日期 ...

  3. python中等于号可以用is代替_python中is与双等于号“==”的区别示例详解

    前言 在开始本文之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识).python type()(数据类型)和value(值).is和==都是对对象进行比较判断作用的,但对对 ...

  4. python中等于号可以用is代替_python中字符串比较使用is、==和cmp()总结

    经常写 shell 脚本知道,字符串判断可以用 =,!= 数字的判断是 -eq,-ne 等,但是 Python 确不是这样子的. 所以作为慢慢要转换到用 Python 写脚本,这些基本的东西必须要掌握 ...

  5. mysql 中有行号吗_重置SQLite3 / MySQL中的行号计数

    sqlite的 使用: DELETE FROM your_table; DELETE FROM sqlite_sequence WHERE name = 'your_table'; sqlite ke ...

  6. matlab+awgn和wgn,噪聲強度(噪聲功率) 噪聲方差到底有什么關系? matlab中的awgn函數...

    以matlab中awgn函數為例說明: 在matlab中無論是wgn還是awgn函數,實質都是由randn函數產生的噪聲.即:wgn函數中調用了randn函數,而awgn函數中調用了wgn函數. 根據 ...

  7. matlab工具函数newp,常用的 MATLAB 神經網絡工具箱函數

    列表中所列出的函數適用於 MATLAB5.3 以上版本,若需要進一步的了解,請參閱 MATLAB 的幫助文檔. 1. 網絡創建函數 newp   創建感知器網絡 newlind   設計一線性層 ne ...

  8. newff matlab使用例子,matlab神經網絡newff函數的用法

    設[P,T]是訓練樣本,[X,Y]是測試樣本: net=newrb(P,T,err_goal,spread); %建立網絡 q=sim(net,p); e=q-T; plot(p,q); %畫訓練誤差 ...

  9. java中random的头文件_JAVA中的Random()函數

    Java中存在着兩種Random函數: 一.java.lang.Math.Random; 調用這個Math.Random()函數能夠返回帶正號的double值,該值大於等於0.0且小於1.0,即取值范 ...

最新文章

  1. python入门指南 许半仙txt百度云-《剑有话说》TXT全本 百度云网盘下载 by一刀绣春...
  2. 用cmake编译caffe
  3. 头发一周洗几次才适宜? - 生活至上,美容至尚!
  4. git 清空所有commit记录
  5. 高性能MySQL-3rd-(六)查询性能优化
  6. [mybatis]映射文件_参数处理_#和$取值区别
  7. UE4 FBX静态网格物体通道
  8. 本地开发时同时启动多个tomcat服务器
  9. Linux之find xargs
  10. manacher算法--最长回文子串
  11. 解压rootfs.img根文件系统
  12. 72. 少用 iframe
  13. 机器学习笔记(一):机器的学习定义、导数和最小二乘 | 凌云时刻
  14. angularJs完成分页
  15. TA505武器之隐形电子邮件窃取器
  16. 计算机的管理员在那,win10系统administrator管理员在哪
  17. 什么是数据库分组查询(详解)
  18. Git月嫂级安装步骤
  19. JavaScript中的name和classname有什么区别
  20. 【python爬虫专项(19)】blibli弹幕数据爬取(以全站搜索蔡徐坤的视频为例)

热门文章

  1. 输入三角形三边长,求三角形面积
  2. 解决linux的-bash: ./xx: Permission denied/tensorflow 运行cpu还是gpu的方法
  3. 计算机的运作流程的个人感想
  4. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬
  5. java常见的设计模式
  6. Windows下的你画我猜 -- 告别效率低下的目录扫描方法
  7. 个人免签码支付源码|服务监控模块强大后台功能全面
  8. Android studio gradle编译失败问题汇总
  9. android画cci指标代码,大智慧CCI画线指标源码 副图公式
  10. cjk-ext-e 字体