MATLAB中dlmread函数用法

2024-01-01 15:35:17

目录

语法

说明

示例

读取整个带分隔符的文件

读取包含空的分隔字段的文件

从特定行和列偏移量开始读取带分隔符的文件

读取带分隔符的文件中的特定范围


????????dlmread函数的功能是将 ASCII 分隔的数值数据文件读取到矩阵。

语法

M = dlmread(filename)
M = dlmread(filename,delimiter)
M = dlmread(filename,delimiter,R1,C1)
M = dlmread(filename,delimiter,[R1 C1 R2 C2])

说明

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]) 仅读取行偏移量 R1 和 R2 及列偏移量 C1 和 C2 界定的范围。另一种定义范围的方法是使用电子表格表示法(例如 '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

参数说明

filename — 文件名

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

delimiter — 字段分隔符

????????字段分隔符,指定为字符向量或字符串。使用 '\t' 指定制表符分隔符。

R1 — 起始行偏移量

????????起始行偏移量,指定为非负整数。第一行的偏移量为 0。

C1 — 起始列偏移量

????????起始列偏移量,指定为非负整数。第一列的偏移量为 0。

R2 — 结束行偏移量

????????结束行偏移量,指定为非负整数。第一行的偏移量为 0。

C2 — 结束列偏移量

????????结束列偏移量,指定为非负整数。第一列的偏移量为 0。

提示

  • 通过指定行和列偏移量跳过标题行或列。文件而非标题中的所有值必须是数值。

算法

????????dlmread?用零填充空的分隔字段。当?dlmread?函数读取其行以非空格分隔符(例如分号)结尾的数据文件时,它返回矩阵?M,该矩阵包含由零组成的额外最后一列。

????????dlmread?将任何复数作为一个整体导入到复数字段中。此表中显示了复数的有效形式。

形式

示例

±<real>±<imag>i|j

5.7-3.1i

±<imag>i|j

-7j

????????复数中的嵌入空白无效,dlmread 将它视为字段分隔符。

文章来源:https://blog.csdn.net/jk_101/article/details/134420771
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。