| Development Environment | ![]() |
アルファベットと数値が混ざったデータのインポート
ファイルにアルファベットと数値ASCIIデータの双方が混在している場合、関数textread を使って、データをインポートすることができます。関数textread は、複数の出力変数を戻し、各変数のデータタイプを指定することもできます。
たとえば、つぎのファイルmydata.dat は、アルファベットと数値データの双方で構成しています。
Sally Type1 12.34 45 Yes Larry Type2 34.56 54 Yes Tommy Type1 67.89 23 No
| 注意 主に数値データで構成されているが、ヘッダがテキストになっているASCIIデータファイルを読み込む場合は、"テキストヘッダを含む数値データのインポート"を参照してください。 |
このファイルmydata.dat の全内容をワークスペースに読み込むには、関数textreadの引数として、データファイル名、フォーマット文字列を指定します。フォーマット文字列には、それぞれのデータアイテムをどのように解釈するかを指定する変換設定子も含まれます。たとえば、変換設定子 %s は文字データ、%f は浮動小数点データ、等々を指定します(フォーマット設定子の完全なリストについては、関数textread のリファレンスページを参照してください)。
ユーザのフォーマット文字列の各変換設定子に関して、別々の出力変数を指定しなければなりません。関数textread は、ファイル内のそれぞれのデータアイテムを、フォーマット文字列に従って、処理し、出力変数に値を保存します。出力変数の数は、フォーマット文字列で指定した変換設定子の数と一致しなければなりません。
つぎの例題で、関数textread は、ファイル mydata.datを読み、ファイルの終端子に出会うまで、ファイルの中の各ラインにフォーマット文字列を適用します。
[names,types,x,y,answer] = textread('mydata.dat','%s %s %f ...
%d %s',1)
names =
'Sally'
'Larry'
'Tommy'
types =
'Type1'
'Type2'
'Type1'
x =
12.3400
34.5600
67.8900
y =
45
54
23
answer =
'Yes'
'Yes'
'No'
ユーザのデータが、スペース以外のキャラクタをデリミタとして使用している場合、関数textread のパラメータ 'delimiter'にデリミタとしてユーザが使用しているキャラクタを指定してください。たとえば、ファイル mydata.dat が、セミコロンをデリミタとして使用しているとしましょう。この場合は、つぎのように使用します。
[names,types,x,y,answer] = textread('mydata.dat','%s %s %f ...
%d %s','delimiter',';')
オプションパラメータの詳細については、関数textreadのリファレンスページを参照してください。
| テキストヘッダを含む数値データのインポート | ASCII データのエクスポート | ![]() |