1樓:匿名使用者
如果資料很多的話,一行一個看起來不太划算,可以記錄一個,然後空格。(不過實際上如果只是為了讀取的話,一行一個也沒什麼不行的)
關於找峰值,我沒有做訊號處理的經驗,不過大致可以想一個演算法如下:
序列a,b,c,d,e(整數),用a與b比較,得到一個true或false的布林變數bool1,然後用b和c比較,得到第二個布林變數bool2,如果bool1和bool2一致的話,說明b不是峰值,接著往下比較,用c和d比較的結果bool3替換bool1,以此類推。
如果不一致的話,b就是峰值,輸出b在陣列中的位置,然後找到第二個峰值後,相減,得到間隔t。
如果考慮相等的情況的話,可以把等於的if語句放在大小比較之前,如果true的話,就直接跳到下一步比較,而這一步的布林變數可以不用管,知道下一步比較出現不等於的情況就來更新這個布林變數。
具體程式還是自己編吧,這也是一種鍛鍊~祝好運
2樓:匿名使用者
open(unit=1,file='訊號值')do i=1,a_max !a_max為訊號值的個數read(1,*), a(i) !讀入訊號值enddo
這是將資料讀入程式中,下面要找每個峰值的話,我建議可以分段找,比方說將所有的值分成a_max/8段(8是根據週期預估的值)。在每一段裡找最大值的話就可以採用下面的程式了
temp=0.
do i=1,a_max/8 !a_max為訊號值的個數if(a(i)>temp) then temp=a(i)write(*,*) temp,i !temp為該段中的最大值,i為最大值的位置
endif
enddo
希望能對你有幫助吧 。
一個fortran語言程式的問題,計算流體力學相關~很急
3樓:匿名使用者
nnod在最初給的值是不是給小了,陣列溢位了,迴圈的時候哪個迴圈次數超陣列最大容量了
問關於C語言程式設計的思路,很小的兩個問題
這類題一般都可以讓計算機遍歷所有情況,找出符合條件的情況比如第一題 你可以先 把輸入x 計算5x 1 判斷5x 1是否大於500 如果大於500,則輸出結果 如果小於500,則x 5x 1 迴圈到第二步這個功能的 寫出來,把輸出的結果儲存到y下一步就用for迴圈把x從1迴圈到120 因為很明顯x大於...
關於C語言的小程式設計
1 把int max int x,int y 移到main 上面。2 viod改為void。即 include int max int x,int y void main int max int x,int y 有以下兩個問題 1.viod改為void,否則編譯就通不過的2.scanf d,d a,...
關於C語言和程式設計,用C語言程式設計和用C 語言程式設計區別大嗎?
一 工欲善其事,必先利其器 這裡介紹幾個學習c語言必備的裝置和書籍 a 開發環境 例如turbo c 2.0,這個曾經佔據了dos時代開發程式的大半個江山。但是現在windows時代,用turbo c有感覺不方面,編輯程式起來很吃力,並且拖放,更沒有函式變數自動感應功能,查詢參考資料也不方便。建議使...