• ベストアンサー

MATLAB(マトラボ)とcsvファイルについて

マトラボで、文字列を含む、csvファイルを読み込み、データをプログラムに使用したいのですが、どうしたらいいですか? csvread('filename')ではできませんでした。 どなたか、ご教授くださいませ。

質問者が選んだベストアンサー

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

Excelで読み込んで、xlsファイルにセーブして、 xlsreadでmatlabに読み込むとか。 http://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/?/matlab/support/manual/r13/toolbox/matlab/ref/xlsread.shtml

suzukiman0
質問者

お礼

この度は、ご丁寧にご回答を頂戴いたしまして、誠にありがとうございました!!!

その他の回答 (2)

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.3

#2です。 先ほどの手順(4)の部分で、読み込んだのが数値しかないと分かっている行に対してなら、 str = strrep(line, ',', ' ') data = sscanf(str, '%f') と書いた方がシンプルで良いかもしれませんね。

suzukiman0
質問者

お礼

何度もご回答をいただき、本当にありがとうございます。

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.2

(1)fid = fopen(path, 'r')でファイルを開く (2)line = fgets(fid)でファイルから1行取得 (3)index = findstr(line, ',')でカンマ位置を取得 (4)カンマ位置でlineを分割  文字列はそのまま取得、数値はstr2num()でキャストしてから取得  例)カンマがN-1個ある場合   data1 = line(1:(index(1) - 1))   data2 = line((index(1) + 1):(index(2) - 1))   data3 = line((index(2) + 1):(index(3) - 1))          :   dataN = line((index(N-1) + 1):end) (5)手順(2)~(4)をEOFまで繰り返す (6)fclose(fid)でファイルを閉じる このような手順で大丈夫だと思います。 ただし、ファイル構造が分かっていること、区切り文字以外でカンマが使用されていないことが条件です。 まぁ、構造が分からないファイルからデータを読み込むことなんてできませんが。

参考URL:
http://infoshako.sk.tsukuba.ac.jp/ShakoDoc/MATLAB5/jhelp/techdoc/refbycat/groups.html
suzukiman0
質問者

お礼

こちらからのご連絡が遅くなりまして、大変失礼いたしました。 今回は、ご丁寧なご回答、誠にありがとうございました。

関連するQ&A