csvデータシートの抽出

20 views (last 30 days)
Jo Sasaki
Jo Sasaki on 16 Aug 2018
Commented: Hirokazu Tanaka on 18 Aug 2018
現在CNN入力層にcsvの一次元データを適用した解析を行っています。
csvを読み込む関数をreadDatastoreCSVと定義し
function data = readDatastoreCSV(filename)
data = csvread(filename);
data = reshape(data, [1 x 1 1]); %xはデータの数
と定義しています。 この関数はcsvファイルのA列のみ使用した関数なのですが、今回使用するcsvファイルのデータシートは1~2401行、A~OI列(縦2401横399)まで存在するcsvを扱います。
このcsvデータのA列、B列...を各々1データとして取り扱いたいのですが、関数readDatastoreでどういった処理を行えばよいでしょうか?

Accepted Answer

Hirokazu Tanaka
Hirokazu Tanaka on 17 Aug 2018
「このcsvデータのA列、B列...を各々1データとして取り扱いたい」というところもう少し詳しく教えてください。
CNNということはデータは imageDatastore で処理されてますか?imageDatastore でカスタムの読み込み関数を定義して、csv ファイルを読み込んでいるということでしょうか?
また、csvファイルには 399 列のデータがあり、それぞれを別々の入力データとして学習させることが目的ですか?例えば、1つのファイルを列毎に別々の csvファイル 399個に分割して学習させる必要があるかもしれないところを、カスタムの読み込み関数をうまく定義して避けたいということでしょうか?
  2 Comments
Jo Sasaki
Jo Sasaki on 17 Aug 2018
readDatastoreCSVとは、CNNにおけるimageDatastore内のReadFcn: @readDatastoreImageの部分で画像の代わりにcsvデータを読み込むための関数です。
いままでは加速度計の値を読み込んでいたためエクセルファイルのA列にのみ数値が存在していました。 ですが、波形処理後のデータを入力データとして扱うため今回使用するcsvデータは399列のデータが存在しています。 この399列のデータそれぞれ1列ずつ抽出してを入力層に入力させたいと考えています。
なので、 csvファイルには 399 列のデータがあり、それぞれを別々の入力データとして学習させることが目的ですか?例えば、1つのファイルを列毎に別々の csvファイル 399個に分割して学習させる必要があるかもしれないところを、カスタムの読み込み関数をうまく定義して避けたいということでしょうか?
この目的であっています。 こちらでcsvの分割するのは、データの数が多いのでこの関数の中で完結させたいと考えています。 この方法以外になにかいい手法や提案がありましたら教えていただければありがたいです。
Hirokazu Tanaka
Hirokazu Tanaka on 17 Aug 2018
Edited: Hirokazu Tanaka on 17 Aug 2018
imageDatastore の今の機能では難しそうですね・・。 ファイルの分割自体は比較的単純なスクリプトで実現(読み込んで、1列毎に保存)できると思いますので、まずは分割してしまうのが近道かとは思いますが、どうでしょうか。

Sign in to comment.

More Answers (1)

Jo Sasaki
Jo Sasaki on 17 Aug 2018
Edited: Jo Sasaki on 17 Aug 2018
難しそうですか。。。 いまエクセルのマクロで分割コードを実行して、各列のcsvを連続で保存していたのですがどうしても遅さが気になってしまいますね。 こういった各列のデータを連続でcsvとして出力は可能でしょうか? 参考になるドキュメントなどあったら教えていただきたいです。。。
  3 Comments
Jo Sasaki
Jo Sasaki on 18 Aug 2018
実践したところMATLAB約25秒、マクロ10分以上と大きく差がでました。 マクロ自体最適化されたコードかどうかも微妙なのですが、断然MATLABのほうが早そうですね。 ご回答ありがとうございました。
Hirokazu Tanaka
Hirokazu Tanaka on 18 Aug 2018
良かったです。そんなに差が出るもんなんですね。

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!