如何用matlab做一个提取峰值的程序

如何用matlab做一个提取峰值的程序,第1张

clcclear

A=[...

11000 6 8 29 21 0 9 47 147

11001 6 8 29 21 0 10 89 149

11002 6 8 29 21 0 12 31 142

11003 6 8 29 21 0 13 71 146

11004 6 8 29 21 0 15 12 149

11005 6 8 29 21 0 16 52 151

11006 6 8 29 21 0 17 92 146

11007 6 8 29 21 0 19 32 144

11008 6 8 29 21 0 20 73 148

11009 6 8 29 21 0 22 14 148]

t=A(:,7)*1000+A(:,8) %ms

I=A(:,9)

[Imax,idmax]=max(I)

[Imin,idmin]=min(I)

plot(t,I,'o-')

本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过胡孙。

#include <stdio.h>

#include <stdlib.h>

#define N 80

int num,b[N]/* num表示峰值的个数,定义为全局变量,液态初值为0 */

/* b[]存储所有找大的峰值 */

int TopPoints(int d[],int n)

{int i,j

int peakmax=-32768/* 峰值最大值,初值设为整型最小值 */

for(i=0i<n-2i++)

if(d[i+1]>d[i]&&d[i+1]>d[i+2])

{ b[num]=d[i+1]

if(d[i+1]>peakmax)

peakmax=d[i+1]

num++

}

return peakmax

}

int main()

{int i,n,max,d[N]

printf("Please input number of digits:\n")/*输入数字个数*/

scanf("%d",&n)

printf("Please input %d digits one by one:\n",n)/*输入各个数字*/

for(i=0i<ni++)

scanf("%d",&d[i])

max=TopPoints(d,n)

printf("There are %d peak values.They are:\n",num)

for(i=0i<numi++)

printf("闹做源%-5d",b[i])

printf("\nThe largest is: %d\n",max)

system("pause")

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12568706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存