Main Content

dlmread

(非推奨) 数値データの ASCII 区切りファイルを行列に読み込む

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

説明

M = dlmread(filename) は、ASCII 区切り数値データ ファイルを行列 M に読み取ります。関数 dlmread はファイルの区切り記号を検出し、連続する空白を単一の区切り記号として扱います。

M = dlmread(filename,delimiter) は、指定の区切り記号を使用してファイルからデータを読み取り、連続する区切り記号文字を複数の区切り記号として扱います。

M = dlmread(filename,delimiter,R1,C1) は、行オフセット R1、列オフセット C1 の位置から読み取りを開始します。たとえば、オフセット R1=0 および C1=0 はファイルの最初の値を示します。

区切り記号を指定せずに行と列のオフセットを指定するには、たとえば M = dlmread(filename,'',2,1) のように、プレースホルダーとして空の文字を使用します。

M = dlmread(filename,delimiter,[R1 C1 R2 C2]) は、行のオフセット R1R2 および列のオフセット C1C2 の範囲のみを読み取ります。[0 0 6 1] の代わりに、'A1..B7' のようなスプレッドシート表記法を使用して範囲を定義することもできます。

すべて折りたたむ

サンプル ファイル count.dat を読み取ります。

M = dlmread('count.dat')
M = 24×3

    11    11     9
     7    13    11
    14    17    20
    11    13     9
    43    51    69
    38    46    76
    61   132   186
    75   135   180
    38    88   115
    28    36    55
      ⋮

dlmread はファイル内の区切り記号を検出し、行列を返します。

2 つの行列を 1 つのファイルに書き込んでから、dlmread を使用して、そのファイル全体を読み取ります。

行列を myfile.txt という名前のファイルにエクスポートします。次に、ファイルの最初の行列から 1 行下の位置に別の行列を追加します。

X = magic(3);
dlmwrite('myfile.txt',[X*5 X/5],' ')
dlmwrite('myfile.txt',X,'-append', ...
   'roffset',1,'delimiter',' ')

ファイルの内容を表示します。

type myfile.txt
40 5 30 1.6 0.2 1.2
15 25 35 0.6 1 1.4
20 45 10 0.8 1.8 0.4
  
8 1 6
3 5 7
4 9 2

dlmread を使用してファイル全体を読み取ります。

M = dlmread('myfile.txt')
M = 6×6

   40.0000    5.0000   30.0000    1.6000    0.2000    1.2000
   15.0000   25.0000   35.0000    0.6000    1.0000    1.4000
   20.0000   45.0000   10.0000    0.8000    1.8000    0.4000
    8.0000    1.0000    6.0000         0         0         0
    3.0000    5.0000    7.0000         0         0         0
    4.0000    9.0000    2.0000         0         0         0

インポートするファイルに非矩形データが含まれる場合、dlmread は空のフィールドをゼロで埋めます。

列ヘッダーとスペースで区切られた値を含むファイル dlmlist.txt を作成します。

test max min direction
10 27.7 12.4 12
11 26.9 13.5 18
12 27.4 16.9 31
13 25.1 12.7 29  

ファイル内の数値を読み取ります。区切り記号にスペース、行オフセットに 1、列オフセットに 0 を指定します。

filename = 'dlmlist.txt';
M = dlmread(filename,' ',1,0)
M =

   10.0000   27.7000   12.4000   12.0000
   11.0000   26.9000   13.5000   18.0000
   12.0000   27.4000   16.9000   31.0000
   13.0000   25.1000   12.7000   29.0000

列ヘッダーとスペースで区切られた値を含むファイル dlmlist.txt を作成します。

test max min direction
10 27.7 12.4 12
11 26.9 13.5 18
12 27.4 16.9 31
13 25.1 12.7 29  

ファイルの最後の 2 行の数値データのみを読み取ります。

M = dlmread('dlmlist.txt',' ',[3 0 4 3])
M =

   12.0000   27.4000   16.9000   31.0000
   13.0000   25.1000   12.7000   29.0000

入力引数

すべて折りたたむ

ファイル名。文字ベクトルまたは string として指定します。

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

データ型: char | string

フィールドの区切り記号。文字ベクトルまたは string として指定します。'\t' を使用して、タブ区切り記号を指定します。

例: ',' または ","

例: ' ' または " "

データ型: char | string

行の開始オフセット。非負の整数として指定します。最初の行のオフセットは 0 です。

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

列の開始オフセット。非負の整数として指定します。最初の列のオフセットは 0 です。

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

行の終了オフセット。非負の整数として指定します。最初の行のオフセットは 0 です。

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

列の終了オフセット。非負の整数として指定します。最初の列のオフセットは 0 です。

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

ヒント

  • ヘッダーの行と列をスキップするには、行と列のオフセットを指定します。ファイル内のヘッダーを除くすべての値は数値でなければなりません。

アルゴリズム

dlmread は、空の区切りフィールドをゼロで埋めます。読み取るデータ ファイルの各行末が、スペースではない区切り記号 (セミコロンなど) である場合、関数 dlmread が返す行列 M には、ゼロからなる最後の列が追加されます。

dlmread は、いずれの複素数も実数部と虚数部に分けずに複素数フィールドにインポートします。次の表では、複素数の有効な形式を示します。

形式

±<real>±<imag>i|j

5.7-3.1i

±<imag>i|j

-7j

複素数に組み込まれた空白は無効であり、dlmread はその空白をフィールド区切り記号と見なします。

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2019a: dlmread は非推奨

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

R2019a 以降では、区切りテキスト ファイルからの行列の読み取りに関数 readmatrix を使用してください。関数 readmatrix は関数 dlmread に比べて次の利点があります。

  • より優れたクロスプラットフォームのサポートとパフォーマンス

  • データ形式とデータ型の自動検出

  • エラーおよび欠損データの処理を含む、データのインポート処理を制御するインポート オプションを使用可能

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

非推奨

推奨

M = dlmread(filename)
M = readmatrix(filename)