今回は、過去の記事でご紹介した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ファイルや読み込み方法を変更したりと色々と試してみてください。
次回は、読み込んだデータをバイナリファイルに保存する方法をご紹介したいと思います。