機能

CSVファイルの読み込み

  • 2021/01/28
  • NISHIMURA masaharu
CSVファイルの読み込み

 今回は、過去の記事でご紹介したcsvファイルの読み込み方法について説明します。サンプルスクリプトもご用意しましたので、是非ご活用ください。

スクリプトファイルは以下のリンク先からダウンロード出来ます。
https://solution.esi.co.jp/scilab/script/form?script_f=scilab-6.1.0-sample_csvRead
 
Scilabでは、csvRead でCSVファイルを読み込むことが出来ます。csvReadを呼び出す構文はいくつかございますが、四つ目の構文を覚えて頂ければ問題ないかと思います。

構文
 M = csvRead(filename)
 M = csvRead(filename, separator)
 M = csvRead(filename, separator, decimal)
 M = csvRead(filename, separator, decimal, conversion)
 M = csvRead(filename, separator, decimal, conversion, substitute)
 M = csvRead(filename, separator, decimal, conversion, substitute, rexgepcomments, range)
 M = csvRead(filename, separator, decimal, conversion, substitute, rexgepcomments, range, header)

引数の説明

引数名 内容
filename ファイルパス
カレントディレクトリに読み込むファイルがある場合、ファイル名のみでも可
separator 区切り文字
例) コンマ区切りのCSVファイルの場合、"," と設定
decimal CSVファイルで使用されている小数点
例) コンマが使用されている場合、"," と設定すると小数点変換が行われる
conversion 出力値の型
"string" or "double"(デフォルト) のどちらかが設定可能
substitute CSVファイルの文字列の中で検索する文字列と置換する文字列
例) "Not-a-Number"を検索してNaNに置換する場合、["Not-a-Number", "NaN"]
rexgepcomments 一致する行を削除する為の正規表現

range 読み込む列及び行の範囲
例) 2行1列~3行2列を読み込む場合、[2,1,3,2] と設定
header 読み込む際に無視される行の数(先頭行から)

M 出力値

使用例 
 1) コンマ区切りの data.csv を数値として読み込む場合
  M = csvRead("data.csv", ",", [], "double");

 2) コンマ区切りの data.csv を文字列として読み込む場合
  Mstr = csvRead("data.csv", ",", [], "string");
    M = strtod(Mstr(2:100,2)); //Mstrの2列目の2行目から100行目の文字列を数値に変換

 
 今回は、数値と文字列が混在する1991~2020年の東京の日平均気温のCSVファイルを読み込み、その気温をグラフ化するサンプルスクリプトをご用意しました。

スクリプトで読み込むCSVファイルや読み込み方法を変更したりと色々と試してみてください。

次回は、読み込んだデータをバイナリファイルに保存する方法をご紹介したいと思います。