【问题标题】:Can matlab find multiple peaks in a plot? [duplicate]matlab可以在图中找到多个峰吗? [复制]
【发布时间】:2015-01-28 13:05:55
【问题描述】:

显然我是 matlab 编程的新手。我的老师给了我们一个关于编程的问题,他希望我们使用 matlab 制作一个可以从数据图中找到/定位峰值/秒的程序,它是一种峰值查找器。我可以使用origin pro和scilab(它们是峰值查找软件)来做到这一点,那么matlab可以做到吗?提前致谢。

【问题讨论】:

  • 您可能想了解如何操作。您可以使用哪些数学技巧来找到峰值?任何函数中的峰值点是如何定义的?想想衍生品。
  • 我试试这个命令:x=[0:.01:50];y=cos(x); P=findpeaksG(x,y,0,-1,5,5) 但出现错误:未定义函数“findpeaksG”用于“double”类型的输入参数。 peakfinder 中的错误(第 2 行) P=findpeaksG(x,y,0,-1,5,5)
  • “他希望我们制作一个程序 使用 matlab 可以找到/定位峰值/秒”可能并不意味着:“编写一个使用 findpeaks() 的程序” .
  • 是的,你说得有道理,也许我们的老师不希望我们使用 findpeaks(),那么我可以使用什么其他选项或语法?谢谢。
  • @matlabnewbie - 我已将您链接到一个帖子,您可以在其中按照第一原则执行 findpeaks 所做的事情。也看看那个帖子。

标签: matlab plot


【解决方案1】:

你可以使用findpeaks函数:

x = [0:.01:50];
y = cos(x);
[val, pos] = findpeaks(y, x)
  val =
     1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000
  pos =
     6.2800   12.5700   18.8500   25.1300   31.4200   37.7000   43.9800

或者,如果您想要更图形化的东西:

x = [0:.01:50];
y = cos(x);
plot(x, y);
findpeaks(y, x);

无论如何,您都应该查看findpeaks 文档以获取更多信息:

doc findpeaks

【讨论】:

  • 它有效,谢谢:)
猜你喜欢
  • 1970-01-01
  • 2013-11-19
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多