필터 지우기
필터 지우기

CSVファイルから特​定の列のデータのみ取​得する方法

조회 수: 76 (최근 30일)
yuuji yamada
yuuji yamada 2018년 11월 9일
댓글: yuuji yamada 2018년 11월 12일
Matlab2018aを使用しています。 メモリ節約のため、textscanで600000行のCSVデータを20000行ずつ読み込み、 3列目のデータの20000個の平均を算出したいと思っています。 下記のようなプログラムを書いたのですがループが入れ子になっており 速度が遅いです。 data{1}は20000x1 のcell型配列になっています。 data{1}から3列目のデータを20000個素早く取得する方法はないでしょうか。
for i=1:30
data = textscan(fileID, '%s', 20000);
% 20000回ループ
for j=1:length(data{1})
% CSVデータの3列目のみを2000個取得
end
% 取得した2000個のデータを平均する処理
end
close(fileID);

채택된 답변

mizu
mizu 2018년 11월 9일
datastore で、読み込む前に列を絞ってはいかがでしょうか.
ヘルプの例にあるように、SelectedVariablename で読み込む列を指定することができます。
  댓글 수: 1
yuuji yamada
yuuji yamada 2018년 11월 12일
教えて頂いたdatastoreを使用して実現することができました。 ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 言語の基礎에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!