Main Content

dlmread

(不推荐)将 ASCII 分隔的数值数据文件读取到矩阵

不推荐使用 dlmread。请改用 readmatrix。有关详细信息,请参阅兼容性注意事项

说明

示例

M = dlmread(filename) 将 ASCII 分隔的数值数据文件读取到矩阵 Mdlmread 函数从该文件中检测到分隔符,并将重复的空白视为一个分隔符。

M = dlmread(filename,delimiter) 使用指定的分隔符读取该文件中的数据,并将重复的分隔符视为单独的分隔符。

示例

M = dlmread(filename,delimiter,R1,C1) 从行偏移量 R1 和列偏移量 C1 开始读取。例如,偏移量 R1=0C1=0 指定文件中的第一个值。

要指定行和列的偏移量而不指定分隔符,请将空字符用作占位符,例如 M = dlmread(filename,'',2,1)

示例

M = dlmread(filename,delimiter,[R1 C1 R2 C2]) 仅读取行偏移量 R1R2 及列偏移量 C1C2 界定的范围。另一种定义范围的方法是使用电子表格表示法(例如 'A1..B7')而非 [0 0 6 1]

示例

全部折叠

读取示例文件 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 从文件中检测分隔符并返回一个矩阵。

将两个矩阵写入到文件中,然后使用 dlmread 读取整个文件。

将矩阵导出到名为 myfile.txt 的文件中。然后将另外一个矩阵追加到该文件中第一个矩阵往下偏移一行的位置。

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  

仅读取文件中最后两行的数值数据。

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

输入参数

全部折叠

文件名,指定为字符向量或字符串。

示例: 'myFile.dat'"myFile.dat"

数据类型: char | 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 函数从带分隔符的文本文件中读取矩阵。与 dlmread 函数相比,readmatrix 函数具有以下优势:

  • 更好的跨平台支持和性能

  • 自动检测数据格式和类型

  • 能够使用导入选项来控制数据导入过程,包括错误和缺失数据的处理

下表显示了 dlmread 的典型用法,以及如何更新您的代码以改用 readmatrix

不推荐

推荐

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