目錄
1.創建list
2.添加元素
3.統計元素的個數
4.找list內峰值點
5.今天中午吃什么
上周在python翻譯kotlin的程序中,在list相關部分遇到的一些小問題,這一部分想要實作的功能是:
將隨著時間生成的一個一個的整數,存為一個 [12,21,2,24,54,23,……] 形式的矩陣,并找到其中的峰值點,
主要涉及到一下幾個問題:
1.創建list;
2.添加元素;
3.統計元素個數;
4.找list內峰值點;
1.創建list
創建可變的空list,使用mutableListOf()
(注意:listOf()用于創建沒有元素的空List)
val signal = mutableListOf<Int>()
注意:因為是隨著時間而產生的一系列整數,所以空list的定義應該放在回圈外(我直接定義在class下邊了),否則到最后signal只有一個值,也就是最后產生的那個值,
2.添加元素
向signal中添加h,這里要做的就是每生成一個新的h就存入signal中,
signal.add(h)
(注意:此處的h就是隨著時間推進,每一幀產生的一個新的整數,如果單獨輸出h的話,是這樣的形式:
[12]
[21]
[2]
[24]
……)
3.統計元素的個數
list元素的個數,即list的長度,
signal.size
4.找list內峰值點
當前判斷的值大于前邊的且小于后邊的即為極值點,為了限制噪聲波動,限制高于閾值thre才算做極值,
(注意:后邊為了避免一個峰內出現幾個峰尖而導致判別為多個峰,可以限定峰的寬度,認為該寬度內只存在一個峰)
for (i in 1 until lengthData - 1) {
if((signal[i-1]<signal[i]) and (signal[i] > signal[i+1]) and (signal[i]>thre)){
l.add(i) //找出極值的位置
}
if(signal[i] == signal[i-1] ){ //最高點前后可能有相等的情況
l.add(i)
}
}
5.今天中午吃什么
烤肉拌飯或者小楊生煎

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/296909.html
標籤:其他
下一篇:Android 開發小總結
