Development Environment    

インポート関数を使ったテキストデータの取り扱い

コマンドライン、または、M-ファイルからテキストデータをインポートするには、MATLABインポート関数を使用しなくてはなりません。どの関数を使用するかは、テキストファイルのデータのフォーマットに依存します。

テキストデータは、デリミタ、または、列区切り文字と呼ばれるテキストキャラクタを使って、行と列が統一パターンになるようにフォーマットされていなければなりません。デリミタには、スペース、コンマ、セミコロン、タブ、または、その他のキャラクタを設定できます。個々のデータ項目が、アルファベットキャラクタ、数値キャラクタ、両方の混合のいずれであっても、データを処理することは可能です。

テキストファイルには、ヘッダラインと呼ばれる1行以上のテキストを含めても構いません。つぎの例は、ヘッダテキスト、行及び列ヘッダを含んだ、タブ区切りテキストのケースを示しています。

データがどのようにフォーマットされたかを確認するには、テキストエディタでデータを表示してください。そして、フォーマットを決定したら、表 6-1のフォーマットサンプルをスキャンし、ユーザデータのフォーマットに最も近いサンプルを探し出します。より詳しい情報を得るには、表に記載されている関連トピックを参照してください。

MATLABインポート関数を知っているが、いつそれを使ったらいいのかが確かでない、という場合は、表 6-2を参照してください。この表では、それぞれの関数の特徴が比較対照されています。

表 6-1: ASCII データファイルフォーマットとMATLABインポートコマンド   
データフォーマットのサンプル
ファイル拡張子
詳細
1 2 3 4 5
6 7 8 9 10

.txt
.dat
または、その他
詳細は、数値テキストデータのインポートを参照してください。このデータフォーマットについては、インポートウィザードを使うこともできます。 詳細については、インポートウィザードを使ったテキストデータの取り扱いを参照してください。
1; 2; 3; 4; 5
6; 7; 8; 9; 10
または、
1, 2, 3, 4, 5
6, 7, 8, 9, 10

.txt
.dat
.csv
または、その他
詳細については、区切り文字を使ったASCIIデータファイルのインポートを参照してください。このデータフォーマットについて、インポートウィザードを使うこともできます。詳細については、インポートウィザードを使ったテキストデータの取り扱いを参照してください。
Ann Type1 12.34 45 Yes
Joe Type2 45.67 67 No

.txt
.dat
または、その他
詳細については、テキストヘッダを含む数値データのインポートを参照してください。
Grade1 Grade2 Grade3
91.5   89.2   77.3
88.0   67.8   91.0
67.3    78.1   92.5

.txt
.dat
または、その他
詳細については、テキストヘッダを含む数値データのインポートを参照してください。このフォーマットのデータについては、インポートウィザードを使うこともできます。 詳細については、インポートウィザードを使ったテキストデータのインポートを参照してください。

表 6-2: ASCII データインポート関数の機能比較

関数
データタイプ
デリミタ
出力値の数
注釈
csvread
数値データ
コンマのみ
1個
主に、スプレッドシートのデータに使用します。バイナリフォーマットスプレッドシートインポート関数も参照してください。
dlmread
数値データ
任意のキャラクタ
1個
フレキシブル、かつ簡単に使用できる関数です。
fscanf
アルファベットや数値データ、ただし、双方のタイプ共に単一の出力変数に出力します。
任意のキャラクタ
1個
低水準ファイルI/Oルーチンの1つです。この関数を使うには、先ず、fopen を使ってファイル識別子を得ることが必要です。また、読み込みが終わった後は、fclose でファイルをクローズしなくてはなりません。
load
数値データ
スペースのみ
1個
簡単に使用できる関数です。load の関数型を使用して、出力変数の名前を指定してください。
textread
アルファベット、数値データ
任意のキャラクタ
複数の出力値
簡単に使用できるフレキシブル、かつ高機能の関数です。書式文字列を使って、どのように変換を行うかを指定してください。

 インポートウィザードを使ったテキストデータの取り扱い  数値テキストデータのインポート