matlab 找拐点 (papa的儿子,儿子的papa)
2015-02-24 10:07
106 查看
另人问的问题,有点用,记录下来,是用matlab实现的。当数据比较多时,可以不通过for实现,用函数的形式,但有可能需要多一点的内存。
http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=319551&pid=2592723&page=1&extra=#pid2592723
算法是帖子中提供的,
然后我通过两种方式实现的。思路如图
结果如图
函数文件:
发个牢骚,为什么选择语言时matlab 只能被列为其它。
http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=319551&pid=2592723&page=1&extra=#pid2592723
算法是帖子中提供的,
然后我通过两种方式实现的。思路如图
结果如图
clear all clc D=[1 1.1 1.2 1.1 1.05 1.0 0.997 0.995 0.8 0.7 0.6 0.5 0.67 0.72 ]; n_D=length(D); % peaks findpeaks(D) % neg peaks -findpeaks(-D) meps=0.04; %% for version gu=[]; for i=2:(n_D-1) jud1 = (D(i)-D(i-1))*(D(i+1)-D(i)) >= 0 ; jud2 = abs(D(i+1)-2*D(i)+D(i-1))>meps ; if jud1 & jud2 % monotone gu=[gu;i D(i)]; end end %% function version [ gu_D, gu_ind] = fun_mm_find_guaidian( D ,meps); gu_D %% output result plot(D,'.-') hold on % for version plot(gu(:,1),gu(:,2),'ro','MarkerSize',10) % function version plot(gu_ind,gu_D,'g*') %% logs % mod : 24-Feb-2015 09:33:35
函数文件:
function [ gu_D, gu_ind] = fun_mm_find_guaidian( D,meps ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here n_D=length(D); delt1=diff(D); delt2=diff(delt1); judm1=delt1(1:(n_D-2)).*delt1(2:n_D-1)>=0; judm2=abs(delt2)>meps; gu_ind = find(judm1 & judm2)+1; gu_D = D(gu_ind); end
发个牢骚,为什么选择语言时matlab 只能被列为其它。
相关文章推荐
- matlab 画network,papa的儿子
- papa的儿子 matlab plot3 color peaks
- matlab 按颜色画网格bar3 不同于surf,pcolor(儿子的papa)
- matlab 判断网络是在多边形之内,之外还是边界上。papa的儿子
- 最小二乘法和主成分分析的比较 matlab 儿子的papa
- 3D散点 表面,2D散点,边界。 matlab 儿子的papa
- matlab colorbar label ytick的设置 (papa的儿子,儿子的papa)
- matlab double axes, 两个坐标轴 papa的儿子,儿子的papa
- matlab 比较两个集合是否相等 儿子的papa,papa的儿子
- windows office powerpoint PPT 存图 dpi 300(papa的儿子,儿子的papa)
- 利用Matlab寻找曲线的拐点
- 从pdf中提取图中曲线(和数据点)的方法(papa的儿子)
- 尚振宏等《二值图像中拐点的实时检测算法》matlab实现
- VS2008中C#调用Matlab生成的DLL文件
- 浅谈Matlab中imread函数读取图像的实现过程
- matlab编译运行c文件
- matlab字符串的常用操作
- matlab figure 调整大小、字体、线宽
- [转] 如何用matlab生成服从混合高斯分布的随机数?
- 控制标识符的分水岭分割 matlab