[問題] 不定長度的大檔案讀取已回收
==不詳述版==
我有一個檔案可能會到60MB以上
內容有三種型式
一種是標頭
一種是時間戳記
一種是跟在時間戳記後的觀測資料
現在我已完成找出標頭的部分
我的目標是用最快或是次快的速度
取得時間戳記
塞入陣列
現在遇到可能的瓶頸是
含有時間戳記的部分大小不能完全肯定
這樣我在塞入陣列的時候
就有可能遇到要一直配置空間導致程式速度過慢的問題
(ex: while ~eof(fid), data(end+1,:)=xxx;, end)<--會很慢
有沒有比較建議的做法?
===詳述版==
我有一個RINEX資料
要取得標頭後的所有時間戳記
形式以標準敘述式表示為: (( \d{2}){5} [ \d]\d\.\d+) \d ([ \d][\d])(.+)
時間戳記後跟著該時間的量測資料
舉個範例:
09 04 30 21 44 0.000000 6G 1G 2G 3G11G12G13
(data*6*2行)
09 04 30 21 44 10.000000 10G 1G 2G 3G11G12G13G21G22G23G31
(data*10*2行)
其中資料的前面為 年 月 日 時 分 秒 資料總數 資料編號*n
我要取出的資料只有 時間 與 資料總數
我之前的做法是把檔案全部往記憶體餵
然後用matlab提供的標準敘述式把資料找出來
速度還蠻快的
筆記型電腦三十秒內就處理完十三小時*3600秒/筆資料
但現在的問題是檔案大到60MB以後
MATLAB吃掉的記憶體也高達500MB
我每執行一次就要重開MATLAB
而之後我要處理超過86400筆資料
勢必會OUT OF MEMORY
這樣我要改成怎麼寫才能避免OUT OF MEMORY
然後執行起來又不會比以前慢很多?
目前嘗試使用textscan中
可是用起來感覺不對
所以想問問有沒有解法:Q
--
我管你的,嘿嘿! /+ \ ┌─╖
mingray / nosql 學校蚊子老鼠好多...... ‵ (OwO ) │成║
‵ |+|\__ │大║
http://mingray.googlepages.com ( ) | ̄ ̄ ̄ ̄| | └╥╜
作者為研究生,長期關注保健醫療資訊 ( v | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
v > | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.201.115
推
05/01 09:04, , 1F
05/01 09:04, 1F
→
05/01 21:38, , 2F
05/01 21:38, 2F
→
05/01 21:38, , 3F
05/01 21:38, 3F
→
05/01 21:39, , 4F
05/01 21:39, 4F
→
05/01 21:40, , 5F
05/01 21:40, 5F