Mathematica中文论坛-非官方

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 7504|回复: 0
打印 上一主题 下一主题

matlab 3D数据,找峰值。儿子的papa,豆粑粑

[复制链接]

550

主题

629

帖子

3181

积分

论坛元老

Rank: 8Rank: 8

积分
3181
跳转到指定楼层
楼主
发表于 2016-7-7 11:33:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
2D数据,可以用findpeaks函数。
3D数据当中上,一个点,比它周围的8个点都大,它就是一个峰值。具体数据,这个判断条件可能不一样。具体分析,
例子是peaks函数,相对简单一些。
  1. clear all
  2. clc
  3. clf


  4. n=100;
  5. [x,y,z]=peaks(n);

  6. cen=[];
  7. for row= 2: n-1;
  8.     for col = 2: n-1;
  9.         p_cen=z(row,col);
  10.         p_nea=z(row-1:row+1,col-1:col+1);
  11.         val_big=p_cen-p_nea;
  12.         n_big=sum(val_big(:)>0);
  13.         if n_big>7;
  14.             cen=[cen;x(row,col),y(row,col),z(row,col)];
  15.         end
  16.     end
  17. end


  18. h=surf(x,y,z,'edgecolor','none');
  19. alpha(h,0.7);
  20. hold on
  21. plot3(cen(:,1),cen(:,2),cen(:,3),'ro','markersize',10,'markerfacecolor','r');
  22. view(0,90)
复制代码





peaks_top.jpg (76.25 KB, 下载次数: 1331)

peaks_top.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Mathematica中文论坛-非官方 ( 辽ICP备16001491号-1

GMT+8, 2024-12-29 07:15 , Processed in 0.106934 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表