ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

writetable

ファイルへのテーブルの書き込み

構文

  • writetable(T)
  • writetable(T,filename)
  • writetable(___,Name,Value)

説明

writetable(T) は、テーブル T をコンマ区切り形式のテキスト ファイルに書き込みます。ファイル名はテーブルのワークスペースの変数名で、拡張子 .txt が追加されます。writetable が入力テーブル名からファイルの名前を作成できない場合、ファイル table.txt に書き込みます。

T の各変数の各列は、出力ファイルの 1 つの列になります。T の変数名は、ファイルの最初の行の列見出しになります。

writetable(T,filename) は、filename で指定された名前と拡張子のファイルに書き込みます。

writetable は、指定された拡張子に基づいてファイル形式を判別します。拡張子は、次のいずれかでなければなりません。

  • 区切りテキスト ファイルの場合、.txt.dat または .csv

  • Excel® スプレッドシート ファイルの場合、.xls.xlsm または .xlsx

  • Excel for Windows® を備えたシステムでサポートされる Excel スプレッドシート ファイルの場合、.xlsb

writetable(___,Name,Value) は、1 つまたは複数の Name,Value ペア引数で指定された追加のオプションを使用して、テーブルをファイルに書き込みます。前述の構文の任意の入力引数を含めることができます。

たとえば、変数名を出力ファイルの列見出しとして書き込むかどうかを指定することができます。

すべて折りたたむ

テーブルを作成します。

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T = 

    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

    M       45    45    'NY'    true 
    F       41    32    'CA'    false
    M       40    34    'MA'    false

テーブルをコンマ区切り形式のテキスト ファイルに書き込んで、ファイルの内容を表示します。

writetable(T)

writetable は、T.txt という名前のテキスト ファイルを出力します。

type 'T.txt'
Var1,Var2_1,Var2_2,Var3,Var4
M,45,45,NY,1
F,41,32,CA,0
M,40,34,MA,0

writetable は、対応するデータの 2 列上の変数名 Var2 に、一意の接尾辞を追加します。

テーブルを作成します。

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T = 

    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

    M       45    45    'NY'    true 
    F       41    32    'CA'    false
    M       40    34    'MA'    false

テーブルを myData.txt という名前のスペース区切りの形式のテキスト ファイルに書き込んで、ファイルの内容を表示します。

writetable(T,'myData.txt','Delimiter',' ')
type 'myData.txt'
Var1 Var2_1 Var2_2 Var3 Var4
M 45 45 NY 1
F 41 32 CA 0
M 40 34 MA 0

writetable は、対応するデータの 2 列上の変数名 Var2 に、一意の接尾辞を追加します。

テーブルを作成します。

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

T = table(Age,Height,Weight,BloodPressure,...
    'RowNames',LastName)
T = 

                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Smith       38     71        176       124     93   
    Johnson     43     69        163       109     77   
    Williams    38     64        131       125     83   
    Jones       40     67        133       117     75   
    Brown       49     64        119       122     80   

テーブル TmyPatientData.dat という名前のコンマ区切り形式のテキスト ファイルに書き込んで、ファイルの内容を表示します。

writetable(T,'myPatientData.dat','WriteRowNames',true)
type 'myPatientData.dat'
Row,Age,Height,Weight,BloodPressure_1,BloodPressure_2
Smith,38,71,176,124,93
Johnson,43,69,163,109,77
Williams,38,64,131,125,83
Jones,40,67,133,117,75
Brown,49,64,119,122,80

行の名前を含んでいる最初の列には、Row という列見出しが付けられています。これは、T.Properties.DimensionNames プロパティからのテーブルに対する最初の次元の名前です。

テーブル内の英語の日付をドイツ語の日付に変換し、そのテーブルをファイルに書き込みます。

英語の日付を格納する datetime 配列を含むテーブルを作成します。日付に対応する数値データの列ベクトルを作成します。

D = datetime({'01-Jan-2014';'01-Feb-2014';'01-Mar-2014'});
D.Format = 'dd MMMM yyyy';
X1 = [20.2;21.6;20.7];
X2 = [100.5;102.7;99.8];
T = table(D,X1,X2)
T = 

           D             X1      X2  
    ________________    ____    _____

    01 January 2014     20.2    100.5
    01 February 2014    21.6    102.7
    01 March 2014       20.7     99.8

テーブルをテキスト ファイルに書き込みます。名前と値のペアの引数 DateLocale を使用して日付のロケールにドイツ語を指定し、テキスト ファイルの日付を表示します。

writetable(T,'myfile.txt','DateLocale','de_DE');
type myfile.txt
D,X1,X2
01 Januar 2014,20.2,100.5
01 Februar 2014,21.6,102.7
01 März 2014,20.7,99.8

テーブルを作成します。

T = table(['M';'F';'M'],[45;41;36],...
    {'New York, NY';'San Diego, CA';'Boston, MA'},[true;false;false])
T = 

    Var1    Var2         Var3          Var4 
    ____    ____    _______________    _____

    M       45      'New York, NY'     true 
    F       41      'San Diego, CA'    false
    M       36      'Boston, MA'       false

myData.csv という名前のコンマ区切り形式のテキスト ファイルにテーブルを書き込んで、ファイルの内容を表示します。名前と値のペア引数 'QuoteStrings' を使用して二重引用符で文字列を囲み、3 列目のコンマが区切り記号として扱われないようにします。

writetable(T,'myData.csv','Delimiter',',','QuoteStrings',true)
type 'myData.csv'
Var1,Var2,Var3,Var4
"M",45,"New York, NY",1
"F",41,"San Diego, CA",0
"M",36,"Boston, MA",0

テーブルを作成します。

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T = 

    Var1         Var2         Var3    Var4 
    ____    ______________    ____    _____

    M       45          45    'NY'    true 
    F       41          32    'CA'    false
    M       40          34    'MA'    false

myData.xls という名前のスプレッドシートにテーブルを書き込みます。コーナーが B2F6 になる 5 行 5 列の領域の 2 番目のシートのデータを含めます。

writetable(T,'myData.xls','Sheet',2,'Range','B2:F6')

Excel は B6 から F6 のスプレッドシートの行を #N/A で埋めます。これは指定された範囲が入力テーブル T のサイズより大きいためです。

入力引数

すべて折りたたむ

入力データ。テーブルとして指定します。

ファイル名。文字列として指定します。特定のフォルダーに書き込むには絶対パス名を指定してください。そうでない場合、writetable は現在のフォルダー内のファイルに書き込みます。filename にファイル拡張子が含まれる場合、writetable は拡張子からファイル形式を判別します。そうでない場合、writetable はコンマ区切りのテキスト ファイルを作成し、拡張子 .txt を追加します。代替方法として、ファイル拡張子を付けずに filename を指定し、'FileType' 名前と値のペアの引数を含めてファイルの種類を示すことができます。

  • filename が存在しない場合、writetable がファイルを作成します。

  • filename が既存のファイルの名前である場合、writetable はそのファイルを上書きします。

  • filename が既存のスプレッドシート ファイルの名前である場合、writetable は指定の位置にテーブルを書き込みますが、その範囲外にある値は一切上書きしません。

例: 'myData.xls'

例: 'C:\test\myData.txt'

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数個の名前と値のペアの引数を、任意の順番で指定できます。

例: 'WriteVariableNames',false は、変数名が出力ファイルの最初の行として含まれないようにすることを示します。

すべて折りたたむ

ファイルの種類。'FileType' と文字列 'text' または 'spreadsheet' で構成されるコンマ区切りのペアとして指定します。

'FileType' 名前と値ペアは、filename 入力引数と一緒に使用しなければなりません。writetablefilename 入力引数の拡張子に基づいてファイルの種類を判定できる場合、名前と値のペアの引数 'FileType' を指定する必要はありません。writetable は、次の拡張子からファイルの種類を判定できます。

  • 区切りテキスト ファイルの場合、.txt.dat または .csv

  • Excel スプレッドシート ファイルの場合、.xls.xlsm または .xlsx

  • Excel for Windows を備えたシステムでサポートされる Excel スプレッドシート ファイルの場合、.xlsb

例: writetable(T,'mySpreadsheet','FileType','spreadsheet')

変数名を列見出しとして書き込むためのインジケーター。'WriteVariableNames' と、truefalse1 または 0 のいずれかで構成されるコンマ区切りのペアとして指定します。

インジケーター

動作

true

writetable は、変数名を出力の列見出しとして含めます。これは既定の動作です。

'WriteVariableNames''WriteRowNames' の両方の論理インジケーターが true の場合、writetable は出力の最初の列の列見出しとして、T.Properties.DimensionNames プロパティから最初の次元の名前を使用します。

false

writetable は出力に変数名を含めません。

最初の列の行名を書き込むためのインジケーター。'WriteRowNames' と、falsetrue0 または 1 で構成されるコンマ区切りのペアとして指定します。

インジケーター

動作

false

writetable は出力に T からの行名を含めません。これは既定の動作です。

true

writetable は、出力の最初の列として T からの行名を含めます。

'WriteVariableNames''WriteRowNames' の両方の論理インジケーターが true の場合、writetable は出力の最初の列の列見出しとして、T.Properties.DimensionNames プロパティから最初の次元の名前を使用します。

フィールドの区切り記号。'Delimiter' と次の文字列のいずれかで構成されるコンマ区切りのペアとして指定します。

指定子

フィールドの区切り記号

','

'comma'

コンマ。これは既定の動作です。

' '

'space'

スペース

'\t'

'tab'

タブ

';'

'semi'

セミコロン

'|'

'bar'

縦棒

'Delimiter' 名前と値のペアは区切り付きテキスト ファイルに対してのみ使用できます。

例: 'Delimiter','space'

引用符付き文字列書き込みのインジケーター。'QuoteStrings'falsetrue0 または 1 で構成されるコンマ区切りのペアとして指定します。'QuoteStrings'true の場合、writetable は文字列を二重引用符で囲み、文字列の一部として表示される二重引用符をすべて 2 つの二重引用符に置き換えます。例については、引用符で囲まれた文字列を CSV ファイルに書き込みを参照してください。

'QuoteStrings' の名前と値のペアは区切り付きテキスト ファイルでのみ使用できます。

日付を書き込むためのロケール。'DateLocale' と文字列から構成されるコンマ区切りのペアとして指定します。datetime 値をファイルに書き込む場合、DateLocale を使用して writetable が月と曜日の名前および略語を書き込むロケールを指定します。xx_YY の形式の文字列。xx は ISO 639-1 で定義された小文字 2 文字の言語コードで、YY は ISO 3166-1 alpha-2 で定義された大文字の国コードです。ロケールの共通値の一覧については、関数 datetimeLocale 名前と値のペア引数を参照してください。

日付が Excel 形式の日付として記述できる場合、writetable は常に 'DateLocale' パラメーターの値を無視します。詳細については、アルゴリズムを参照してください。

例: 'DateLocale','ja_JP'

書き込み先のワークシート。'Sheet' と、ワークシート名またはワークシート インデックスを示す正の整数を含む文字列で構成されるコンマ区切りのペアとして指定します。ワークシート名文字列にはコロン (:) を含めることができません。スプレッドシート ファイルのシートの名前を決めるには、[status,sheets] = xlsfinfo(filename) を使用します。

シートが存在しない場合は、writetable がワークシート コレクションの最後に新しいシートを追加します。シートがワークシート数より大きいインデックスの場合は、ワークブック内のワークシートの数がシート インデックスと同じになるまで、writetable は空のシートを追加します。いずれの場合でも、writetable は新しいワークシートが追加されたことを示す警告を表示します。

'Sheet' 名前と値のペアはスプレッドシート ファイルでのみ使用できます。

例: 'Sheet',2

書き込み対象のワークシートの四角形部分。'Range' と次の形式のいずれかの文字列で構成されるコンマ区切りのペアとして指定します。

Range の値の形式 説明
'Corner1'

Corner1 は、書き込む領域の最初のセルを指定します。writetable は、テーブル T の書き込みをこのセルから開始します。

例: 'Range','D2'

'Corner1:Corner2'

Corner1Corner2 は、書き込む領域を定義する 1 組の対角です。たとえば、'D2:H4' は、ワークシート上の 2 つの角 D2H4 の間にある 3 行 5 列の四角形領域を表します。'Range' 名前と値のペアの引数では大文字小文字は区別されず、Excel A1 参照スタイル (Excel ヘルプを参照) が使用されます。

例: 'Range','D2:H4'

  • 指定範囲が入力テーブル T のサイズより小さい場合、writetable は入力テーブルのうち範囲に収まるサブセットのみを書き込みます。

  • 指定範囲が入力テーブル T のサイズより大きい場合、writetable は残りの領域をそのままにします。

'Range' 名前と値のペアは、Excel ファイルと一緒にのみ使用できます。

詳細

すべて折りたたむ

ヒント

  • 以下の場合、writetableT を正確には表さないファイルを作成します。その後 readtable を使用してこのファイルを読み取り、新しいテーブルを作成すると、元のテーブルと形式や内容が異なるものになる場合があります。同じデータおよび構成をもつテーブルとしてもう一度このファイルをインポートする必要がある場合は、T を MAT ファイルとして保存してください。

    • writetable は、long g 形式を使用して数値変数を出力し、カテゴリカル変数や文字変数は、引用符で囲まれない文字列としてテキスト ファイルに出力します。

    • 複数の列がある変数の場合、writetable は列見出しとして使用する変数名に一意の識別子を追加します。

    • 3 つ以上の次元が存在する出力変数の場合、writetable はこれらの変数を、後続の次元がたたまれた 2 次元として出力します。たとえば、writetable は 4 x 3 x 2 の変数を、4 行 6 列のサイズとして出力します。

    • cell データ型の変数の場合、writetable は各セルの内容を複数フィールド内の単一行として出力します。内容が数値、論理値、文字またはカテゴリカル以外の場合、writetable は単一の空フィールドを出力します。

アルゴリズム

Excel は Inf 値を 65535 に変換します。MATLAB®NaNNaT および <undefined> のカテゴリカル値を空のセルに変換します。

Excel ファイルの場合、writetabledatetime 配列を含む table 変数を Excel の日付として書き込みます。table に含まれる datetime 配列に 1900 年または 1904 年よりも前の年がある場合、writetable は変数をテキストとして書き込みます。Excel の日付の詳細については、https://support.microsoft.com/en-us/kb/214330 を参照してください。

参考

|

R2013b で導入

この情報は役に立ちましたか?