Main Content

dlmwrite

(非推奨) 行列を ASCII 区切りファイルに書き込む

dlmwrite は推奨されません。代わりに writematrix を使用してください。詳細については、互換性についての考慮事項を参照してください。

説明

dlmwrite(filename,M) は、既定の区切り記号 (,) を使用して配列要素を区切り、配列 M の数値データを ASCII 形式ファイル filename に書き込みます。ファイル filename が既に存在する場合、そのファイルは dlmwrite によって上書きされます。

dlmwrite(filename,M,'-append') は、データを既存ファイル filename の末尾に追加します。

dlmwrite(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、区切り記号、改行文字、オフセットおよび精度オプションを追加指定します。

dlmwrite(filename,M,delimiter) は、指定された区切り記号 (delimiter) を使用して配列要素を区切り、配列 M をファイル filename に書き込みます。

dlmwrite(filename,M,delimiter,row,col) は、指定された行 row と列 col で始まる配列を、保存先ファイルに書き込みます。delimiter で区切られた空の要素は、先行する行と列を埋めます。

すべて折りたたむ

サンプル データの配列 M を作成します。

M = magic(3);

行列 M をファイル myFile.txt に書き込みます。

dlmwrite('myFile.txt',M)

ファイル内のデータを表示します。

type('myFile.txt')
8,1,6
3,5,7
4,9,2

サンプル データの配列 M を作成します。

M = magic(3)*pi
M = 3×3

   25.1327    3.1416   18.8496
    9.4248   15.7080   21.9911
   12.5664   28.2743    6.2832

行列 M を、タブ文字で区切り、有効桁数 3 桁の精度を使用してファイル 'myFile.txt' に書き込みます。

dlmwrite('myFile.txt',M,'delimiter','\t','precision',3)

ファイル内のデータを表示します。

type('myFile.txt')
25.1	3.14	18.8
9.42	15.7	22
12.6	28.3	6.28

サンプル数値データの配列を 2 つ作成します。

M = magic(5);
N = magic(3);

行列 M をファイルにエクスポートし、空白を区切り記号として使用します。

dlmwrite('myFile.txt',M,'delimiter',' ');

既存データから 1 行分をオフセットして、行列 N をファイルに追加します。次に、ファイルを表示します。

dlmwrite('myFile.txt',N,'-append',...
'delimiter',' ','roffset',1)
type('myFile.txt')
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
  
8 1 6
3 5 7
4 9 2

dlmread を使用して 'myFile.txt' 内のデータを読み取ります。

dlmread('myFile.txt')
ans = 8×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
     8     1     6     0     0
     3     5     7     0     0
     4     9     2     0     0

dlmread が 2 つの行列をファイルから読み取ると、小さい方の行列がゼロでパディングされます。

サンプル数値データの配列を作成します。

M = magic(3);

小数点以下 6 桁の精度を使用して、行列 M をファイルにエクスポートします。

dlmwrite('myFile.txt',M,'precision','%.6f');

ファイル内のデータを表示します。

type('myFile.txt')
8.000000,1.000000,6.000000
3.000000,5.000000,7.000000
4.000000,9.000000,2.000000

入力引数

すべて折りたたむ

書き込むファイルの名前。文字ベクトルまたは string として指定します。

例: 'myFile.txt' または "myFile.txt"

データ型: char | string

書き込み対象の数値データ。行列または 1 セルに 1 つの値をもつ数値の cell 配列として指定します。

例: [1,2,3;4,5,6]

例: {1,2,3;4,5,6}

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | cell
複素数のサポート: あり

配列要素を区切る区切り記号。1 文字以上の制御シーケンスを含む文字ベクトルまたは string として指定します。'\t' を使用して、タブ区切りファイルを生成します。

例: ';' または ";"

例: '\t' または "\t"

データ型: char | string

行のオフセット。スカラーとして指定します。行のオフセットは、数値データを書き込む前にスキップする行数を示します。row は 0 ベースであるため、row = 0 は、保存先ファイルの先頭行で書き込みを開始するよう MATLAB® に指示します。スキップされる行は指定された区切り記号を使用して入力されます。

列のオフセット。スカラーとして指定します。列のオフセットは、数値データを書き込む前にスキップする列数を示します。col は 0 ベースであるため、col = 0 は、保存先ファイルの先頭列で書き込みを開始するよう MATLAB に指示します。スキップされる列は指定された区切り記号を使用して区切られます。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: dlmwrite('myFile.txt',M,'precision',4,'delimiter',' ') は、配列 M の数値を有効桁数 4 桁で書き込み、空白文字を使用して区切ります。

配列要素を区切る区切り記号。'delimiter' と 1 文字以上の制御シーケンスを含む文字ベクトルまたは string で構成されるコンマ区切りのペアとして指定します。'\t' を使用して、タブ区切りファイルを生成します。

例: 'delimiter',';' または 'delimiter',";"

例: 'delimiter','\t' または 'delimiter',"\t"

データ型: char | string

行のオフセット。'roffset' とスカラーで構成されるコンマ区切りのペアとして指定します。行のオフセットは、数値データを書き込む前にスキップする行数を示します。これらの行は指定された区切り記号を使用して入力されます。新しいデータが既存ファイルに追加される場合、新しいデータは既存データの末尾からオフセットされます。

行のオフセットは 0 ベースであるため、'roffset',0 は、保存先ファイルの先頭行で書き込みを開始するよう MATLAB に指示します。これは既定の設定です。ただし、ファイルに追加する場合、'roffset',0 は、すぐ後に続く既存データの先頭行で書き込みを開始するよう MATLAB に指示します。

例: 'roffset',2

保存先ファイルの左側からの列のオフセット。'coffset' とスカラーで構成されるコンマ区切りのペアとして指定します。列のオフセットは、数値データを書き込む前にスキップする列数を示します。これらの列は指定された区切り記号を使用して区切られます。

列のオフセットは 0 ベースであるため、'coffset',0 は、保存先ファイルの先頭列で書き込みを開始するよう MATLAB に指示します。これは既定の設定です。

例: 'coffset',1

ファイルへのデータの書き込み時に使用する数値精度。'precision' とスカラーまたは '%10.5f' などの % で始まる C スタイル書式指定子で構成されるコンマ区切りのペアとして指定します。precision の値がスカラーである場合は、有効桁数を示します。

例: 'precision',3

例: 'precision','%10.5f'

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char

行終端文字。'newline' と、キャリッジ リターン/改行 (CR/LF) を使用する場合は 'pc' または改行 (LF) を使用する場合は 'unix' から構成されるコンマ区切りのペアとして指定します。

例: 'newline','pc'

ヒント

  • dlmwrite は、スプレッドシート プログラムで読み取り可能なファイルを書き込みます。あるいは、Windows® の Excel® がインストールされている場合は、関数 xlswrite を使用してスプレッドシートを作成できます。

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2019a: dlmwrite は非推奨

dlmwrite は推奨されません。代わりに writematrix を使用してください。dlmwrite を削除する予定はありません。

R2019a 以降では、区切りテキスト ファイルへの行列の書き込みに関数 writematrix を使用してください。関数 writematrix は、関数 dlmwrite よりもクロスプラットフォームのサポートとパフォーマンスに優れています。

次の表に、dlmwrite の一般的な用法と、代わりに writematrix を使用するようコードを更新する方法を示します。

非推奨

推奨

dlmwrite('mydata.txt',M)
writematrix(M,'mydata.txt')