Main Content

dlmwrite

(不推荐)将矩阵写入到 ASCII 分隔文件

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

说明

示例

dlmwrite(filename,M) 将数组 M 中的数值数据写入一个 ASCII 格式的文件 filename,并使用默认分隔符 (,) 分隔各数组元素。如果文件 filename 已存在,则 dlmwrite 将覆盖该文件。

示例

dlmwrite(filename,M,'-append') 将数据追加到现有文件 filename 的末尾。

示例

dlmwrite(___,Name,Value) 使用一个或多个名称-值对组参数另外指定分隔符、换行符、偏移量和精度选项。

dlmwrite(filename,M,delimiter) 将数组 M 写入文件 filename,并使用指定分隔符 delimiter 分隔各数组元素。

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 写入文件 'myFile.txt',用制表位字符分隔并使用 3 位数精度。

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

创建两个样本数值数据数组。

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

将矩阵 M 导入到文件并使用空白作为分隔符。

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

将矩阵 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 读取文件中的两个矩阵时,将用零填充较小的矩阵。

创建样本数值数据数组。

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

输入参数

全部折叠

要写入的文件的名称,指定为字符向量或字符串。

示例: 'myFile.txt'"myFile.txt"

数据类型: char | string

要写入的数值数据,指定为矩阵或数值元胞数组(每个元胞分配一个值)。

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

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

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | cell
复数支持:

用于分隔数组元素的分隔符,指定为包含一个或多个控制序列字符的字符向量或字符串。使用 '\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 中的数值,带四位有效位数并使用空白字符分隔。

用于分隔数组元素的分隔符,指定为逗号分隔的对组,由 'delimiter' 和包含一个或多个控制序列字符的字符向量或字符串组成。使用 '\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' 和标量或以 % 开头的 C 样式格式设定符(例如 '%10.5f')组成。如果 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 函数将矩阵写入带分隔符的文本文件。与 dlmwrite 函数相比,writematrix 函数具有更好的跨平台支持和性能。

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

不推荐

推荐

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