MATLAB中dlmwrite函数用法

 目录

语法

说明

示例

写入逗号分隔的数据

写入以制表位分隔的数据并指定精度。

写入和追加数据到文件

写入数据并指定精度


        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 创建电子表格。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB,数据的负数可以通过多种方式保存。下面介绍几种常用的方法: 1. 保存为.mat文件 使用MATLAB的save函数可以将数据保存为.mat文件,保存的数据类型可以是任何MATLAB支持的数据类型。例如,假设有一个包含负数的矩阵A,可以使用以下代码将其保存为mat文件: ```matlab save('data.mat', 'A'); ``` 这将会将矩阵A保存为名为data.mat的.mat文件。当读取数据时,MATLAB会将其还原为原始的数据类型,包括负数。 2. 保存为文本文件 如果要将数据保存为文本文件,可以使用MATLABdlmwrite函数或者fprintf函数。例如,假设有一个包含负数的矩阵A,可以使用以下代码将其保存为txt文件: ```matlab dlmwrite('data.txt', A, 'delimiter', '\t', 'precision', '%.4f'); ``` 这将会将矩阵A保存为名为data.txt的txt文件,其每个元素之间使用制表符分隔,精度为小数点后4位。当读取数据时,可以使用MATLAB的load函数或者textscan函数将其读取回来。 3. 保存为二进制文件 如果需要将数据保存为二进制文件,可以使用MATLAB的fwrite函数。例如,假设有一个包含负数的矩阵A,可以使用以下代码将其保存为二进制文件: ```matlab fid = fopen('data.bin', 'w'); fwrite(fid, A, 'double'); fclose(fid); ``` 这将会将矩阵A保存为名为data.bin的二进制文件,数据类型为双精度浮点数。当读取数据时,可以使用MATLAB的fread函数将其读取回来。 需要注意的是,保存数据时应该选择与数据类型匹配的保存方式,以保证数据的精度和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值