MATLAB中dlmread函数用法

本文详细介绍了MATLAB中的dlmread函数,包括其语法、用法示例,以及如何处理不同情况如读取整个文件、包含空分隔字段、特定行列偏移和范围选择。
摘要由CSDN通过智能技术生成

目录

语法

说明

示例

读取整个带分隔符的文件

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

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

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


        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 将它视为字段分隔符。

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值