[問題] 關於讀檔速度 已回收
我想寫一個讀檔進到矩陣裡 再對數據做處理的程式
檔案類型可能是mp3 avi doc...等等 不拘
我一開始是這樣寫:
file_name = 'xxxx.mp3';
fid = fopen(file_name , 'r');
file = fread(fid);
fclose(fid);
本來讀一些小檔案(約幾MB)都沒問題
不過後來發現一些比較大的檔案...像avi等等,會到幾百MB的那種,會出現"out of memory"
所以後來就打算分段讀,寫成:
file_name = 'xxxx.mp3';
fid = fopen(file_name , 'r');
i = 1;
while feof(fid)~=1
file(:,i) = fread(fid,1024);
i = i+1
end
fclose(fid);
結果出現了兩個問題
1.讀取時間變好長! 原本3MB的檔案只要一眨眼,結果現在變的超過一分鐘還沒好?
2.讀到檔案尾的時候會出現matrix dimention mismatch
第一個問題我是想說會不會是一次讀進來的數據太少,導致要一直換column的關係
至於第二個...我也不知道該怎麼處理 囧>
不知道有沒人知道什麼好辦法可以解決這兩個問題呢?
或是有更有效率的寫法...在此先謝過<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.27.39.108
推
05/18 02:33, , 1F
05/18 02:33, 1F
→
05/18 02:35, , 2F
05/18 02:35, 2F
→
05/18 09:34, , 3F
05/18 09:34, 3F
→
05/18 09:35, , 4F
05/18 09:35, 4F
推
05/18 13:06, , 5F
05/18 13:06, 5F