目录
dlmwrite函数的功能是将矩阵写入到 ASCII 分隔文件。
语法
dlmwrite(filename,M)
dlmwrite(filename,M,'-append')
dlmwrite(___,Name,Value)
dlmwrite(filename,M,delimiter)
dlmwrite(filename,M,delimiter,row,col)
说明
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
参数说明
filename — 要写入的文件的名称
要写入的文件的名称,指定为字符向量或字符串。
M — 要写入的数值数据
要写入的数值数据,指定为矩阵或数值元胞数组(每个元胞分配一个值)。
delimiter — 用于分隔数组各元素的分隔符
用于分隔数组元素的分隔符,指定为包含一个或多个控制序列字符的字符向量或字符串。使用 '\t' 可生成以制表符分隔的文件。
row — 行偏移量
行偏移量,指定为标量。行偏移量指示在写入数值数据前所跳过的行数。row 从 0 开始,因此 row = 0 指示 MATLAB® 从目标文件的第一行开始写入。跳过的行将用指定的分隔符填充。
col — 列偏移量
列偏移量,指定为标量。列偏移量指示在写入数值数据前所跳过的列数。col 从 0 开始,因此 col = 0 指示 MATLAB 从目标文件的第一列开始写入。跳过的列将用指定的分隔符分隔。
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
delimiter — 用于分隔数组各元素的分隔符
用于分隔数组元素的分隔符,指定为逗号分隔的对组,由 'delimiter' 和包含一个或多个控制序列字符的字符向量或字符串组成。使用 '\t' 可生成以制表符分隔的文件。
roffset — 行偏移量
行偏移量,指定为包含 'roffset' 和标量、以逗号分隔的对组。行偏移量指示写入数值数据前所跳过的行数。这些行将用指定的分隔符填充。将新数据追加到现有文件时,新数据距现有数据的末尾有一定偏移。
行偏移量从 0 开始,因此 'roffset',0 指示 MATLAB 从目标文件的第一行开始写入(即默认值)。但是,当追加到文件时,'roffset',0 指示 MATLAB 从紧随现有数据后的第一行开始写入。
coffset — 列偏移量
距目标文件左侧的列偏移量,指定为用逗号分隔的对组,由 'coffset' 和标量组成。列偏移量指示写入数值数据前所跳过的列数。这些列将用指定的分隔符分隔。
列偏移量从 0 开始,因此 'coffset',0 指示 MATLAB 从目标文件的第一列开始写入(即默认值)。
precision — 数值精度
向文件写入数据时使用的数值精度,指定为用逗号分隔的对组,由 'precision' 和标量或以 % 开头的 C 样式格式设定符(例如 '%10.5f')组成。如果 precision 的值为标量,则其指示的是有效位数的个数。
newline — 行终止符
行终止符,指定为逗号分隔的对组,由 'newline' 和使用回车符/换行符 (CR/LF) 的 'pc' 或使用换行符 (LF) 的 'unix' 所组成。
提示
-
dlmwrite 写入的文件可用电子表格程序读取。此外,如果系统安装了适用于 Windows® 的 Excel®,可以使用 xlswrite 创建电子表格。