[問題] 如何能只讀取資料中指定的列數已回收
我重新描述一下資料樣子喔
我的資料長的大概像是
1 123 0.5 0.7
1 5 0.1 0.6
....
1 45 0.7 0.1
1 5 0.7 0.1
1 123 0.6 0.3
等等 約有幾百萬列
我要做的事情是針對第二行中所有unique的元素取出他們的資料
以上面的資料來說明的話
第一次取 123的資料 也就是會取出
1 123 0.5 0.7
1 123 0.6 0.3
第二次取 5的資料 也就是會取出
1 5 0.1 0.6
1 5 0.7 0.1
這樣取資料的動作重複到所有unique的元素都作過計算之後才結束
可是因為每列的位元長度不同 並且每次要取的列數相對於所有資料的長度來說很少
所以若每一次都要讀取每一列之後 丟掉不要的列後再做分析
應該會浪費掉很多時間
譬如說 取123這筆的資料 可能在百萬列中 只佔了幾千列
因此想要請問MATLAB有沒有什麼辦法可以只讀取一行呢
我本來想要用textscan(fid, '%d\t%d\t%f\t%f', 'HeaderLines', N-1)
% N是要讀取的第幾列 %
可是我不知道怎麼讓他只讀取那一列之後 就忽略不讀後面的資料
請問有什麼方法可以讀取資料中所給定的特定列數嗎?
謝謝
※ 引述《smallmei (小 美 )》之銘言:
: 我有一筆資料有好幾萬列
: 我想要讀取其中幾列 譬如是第10000, 30000, 100000列
: 如果一次將檔案全部load進來 就會面臨到記憶體不足的情形
: 本來有想要嘗試用textscan的方式 然後把前面的列數都當作headerlines
: 但是現在問題在於 我不知道怎麼讓他只讀一列就終止><!!!
: 請問有任何方法可以讓我不用load所有資料 卻可以讀取特定一列嗎?
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.73.215
推
11/04 10:31, , 1F
11/04 10:31, 1F
→
11/04 10:31, , 2F
11/04 10:31, 2F
→
11/04 10:33, , 3F
11/04 10:33, 3F