當前位置:首頁 » 操作系統 » 檢測峰值演算法

檢測峰值演算法

發布時間: 2024-05-10 03:20:50

① 鎬庝箞鐢51鍗曠墖鏈 媯嫻嬪嘲鍊

瑕佹兂紜瀹氬嘲鍊煎ぇ灝忥紝灝卞繀欏誨栧姞AD妯″潡錛岀敤AD閲囬泦灝卞彲浠ユ嫻嬪嘲鍊礆紝鑻ユ槸鍙闇瑕佺煡閬撳嘲鍊肩殑鏃跺埢錛屽彧瑕佸栨帴鍒板紩鑴氫笂鍒ゆ柇灝卞ソ錛屽彧瑕佸ぇ浜庝竴涓鍥哄畾鐢靛煎氨璁や負杈懼埌浜嗗嘲鍊

② 快速查找二維數組的所有峰值,c語言實現最好,python也可以,最好能實現濾波。

#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<malloc.h>
#definemaxsize6//每個波形數據最大採集個數默認6

typedefstructarray1
{
int*data;
structarray1*next;
}ARR1;
ARR1*addNewArr(ARR1*arrHead,ARR1*arrTail);//插入一組波形數據節點返回尾節點
intfindMaxF(ARR1*arrHead);//查找最大峰值
intremoveMinF(ARR1*arrHead);//移除最小峰值數據組返回最小峰值
voidprintfArr(ARR1*arrHead);//列印數據鏈表

intmain()
{
ARR1*arrHead=(ARR1*)malloc(sizeof(ARR1));
arrHead->next=NULL;
ARR1*arrTail=NULL;

arrTail=addNewArr(arrHead,arrTail);//想插入幾組,就調用幾次我就測試6組
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);

printf("採集的原數據組為: ");
printfArr(arrHead);
printf("最大峰值:%d,最小峰值值:%d ",findMaxF(arrHead),removeMinF(arrHead));
printf("刪除最小峰值數據組後的數據為: ");
printfArr(arrHead);
return0;
}


voidprintfArr(ARR1*arrHead)//列印數據鏈表
{
while(arrHead->next!=NULL)
{
printf("%d,%d,%d,%d,%d,%d ",arrHead->next->data[0],arrHead->next->data[1],arrHead->next->data[2],arrHead->next->data[3],arrHead->next->data[4],arrHead->next->data[5]);
arrHead=arrHead->next;
}
}
ARR1*addNewArr(ARR1*arrHead,ARR1*arrTail)//插入一組波形數據返回尾節點
{
int*data=(int*)malloc(sizeof(int)*maxsize),i;
printf("採集一組波形數據(最大採集個數%d):",maxsize);
for(i=0;i<maxsize;i++)
scanf("%d",&data[i]);

ARR1*arrNew=(ARR1*)malloc(sizeof(ARR1));
arrNew->data=data;
arrNew->next=NULL;

if(arrHead->next==NULL)//插入第一組數組作為首節點
arrHead->next=arrNew;
else
arrTail->next=arrNew;

arrTail=arrNew;
returnarrTail;
}
intfindMaxF(ARR1*arrHead)//查找最大峰值
{
inti,maxNum=0,maxf=0;
while(arrHead->next!=NULL)
{
maxNum=0;
for(i=0;i<maxsize;i++)//獲取每組數據的峰值
{
if(arrHead->next->data[i]>maxNum)
maxNum=arrHead->next->data[i];
}
if(maxNum>maxf)//獲取最大峰值
maxf=maxNum;
arrHead=arrHead->next;
}
returnmaxf;
}
intremoveMinF(ARR1*arrHead)//移除最小峰值數據組返回最小峰值
{
inti,maxNum=0,minf=INT_MAX;
ARR1*minDataSave=NULL,*arrHeadSave=arrHead;
while(arrHead->next!=NULL)
{
maxNum=0;
for(i=0;i<maxsize;i++)//獲取每組數據的峰值
{
if(arrHead->next->data[i]>maxNum)
maxNum=arrHead->next->data[i];
}
if(maxNum<minf)//獲取最小峰值
{
minDataSave=arrHead->next;
minf=maxNum;
}
arrHead=arrHead->next;
}

arrHead=arrHeadSave;
//移除最小峰值數據組
while(arrHead->next!=NULL)
{
if(arrHead->next==minDataSave)//刪除節點重組鏈表
{
arrHead->next=minDataSave->next;
minDataSave->next=NULL;
free(minDataSave->data);//釋放節點內存
free(minDataSave);
break;
}
arrHead=arrHead->next;
}

returnminf;
}

③ 鎬庢牱鐢╨abview媯嫻嬭緭鍏ョ殑娉㈠艦鏂囦歡鍦ㄦ煇棰戠巼鍖洪棿涓婃槸鍚﹀瓨鍦ㄥ嘲鍊(鎴栫敤matlab瀹炵幇涔熻)

緇欎綘涓や釜鎬濊礬鍚

1.鐢ㄢ滄嘗褰㈡嘗宄版嫻嬧濊繖涓鍑芥暟錛屽彲浠ュ湪淇″彿澶勭悊閲岄潰鎵懼埌

2.鍙浠ュ逛俊鍙峰仛棰戣氨錛岀劧鍚庣敤鏁扮粍瀛愰泦鎴鍙栬佺殑棰戞碉紝瀵歸戞靛幓宄板礆紝璁懼畾涓涓闃堝礆紝榪欎釜闃堝煎彲浠ユ槸鏁翠釜棰戣氨宄板肩殑1/2錛屽傛灉鎴鍙栭戞靛嘲鍊艱秴榪囦簡榪欎釜闃堝礆紝灝辮や負鏈夋槑鏄劇殑宄板奸戠巼

熱點內容
java中立方 發布:2024-11-27 07:07:05 瀏覽:484
編程Q1 發布:2024-11-27 06:52:29 瀏覽:459
版本編譯驗證 發布:2024-11-27 06:46:43 瀏覽:938
ftp上傳占內存 發布:2024-11-27 06:46:40 瀏覽:58
怎麼建java基岩互通伺服器 發布:2024-11-27 06:37:28 瀏覽:959
aspcms圖片上傳 發布:2024-11-27 06:32:20 瀏覽:416
qq空間本地上傳的音樂 發布:2024-11-27 06:14:50 瀏覽:921
辦公室雲電腦伺服器 發布:2024-11-27 06:11:45 瀏覽:27
有趣的php 發布:2024-11-27 05:58:13 瀏覽:960
php網頁開發 發布:2024-11-27 05:56:09 瀏覽:956