欢迎光临散文网 会员登陆 & 注册

[matlab] dlmwrite函数的用法

2022-10-08 21:05 作者:Thermal_烟霞客  | 我要投稿

 dlmwrite函数的用处:将数组中的数值数据写入文件中。  

      dlmwrite在 R2006a 之前推出;R2019a及以后的版本,不推荐使用 dlmwrite。推荐用 writematrix。从 R2019a 开始,使用 writematrix 函数将矩阵写入带分隔符的文本文件。与 dlmwrite 函数相比,writematrix 函数具有更好的跨平台支持和性能。基础示例如下:

     dlmwrite('mydata.txt',M)

     writematrix(M,'mydata.txt')

1、dlmwrite语法与说明

dlmwrite('filename',M)

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

 

dlmwrite('filename',M,'-appendv')

将数据追加到现有文件 filename 的末尾。

 

dlmwrite('filename',M, 'delimiter',';')

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


dlmwrite('filename',M,'precision',3)

指定有效位数或精度。


dlmwrite('filename',M,'precision',3,'delimiter',';','roffset',2,'coffset',1)

从目标文件中指定的第2行和第1列开始写入数组。行和列用 delimiter指定的元素填充。


2、参数解释

filename - 要写入的文件的名称

       要写入的文件的名称,指定为字符向量或字符串。示例: 'myFile.txt' 或 "myFile.txt"

数据类型: char | string

M- 要写入的数值数据

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

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

类型:single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | cell

复数支持:是

precision - 数值精度

      向文件中写入数据时使用的数值精度,指定为用逗号分隔的对组,由 'precision'加标量或以%开头的格式设定符(例如'%10.5f')组成。

示例: 'precision',3             如果 precision 的值为标量,则其指示的是有效位数的个数。

示例: 'precision', '%10.5f'       指定数值精度。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char

delimiter - 用于分隔数组各元素的分隔符

      ',' (默认) | 字符向量 | 字符串。用于分隔数组元素的分隔符,指定为包含一个或多个控制序列字符的字符向量或字符串。使用 '\t' 可生成以制表符分隔的文件。

示例1: '; ' 或 ";"                 示例2: '\t' 或 "\t"

数据类型: char | string

roffset - 行偏移量

        行偏移量,指定为包含 'roffset' 和标量、以逗号分隔的对组。行偏移量指示写入数值数据前所跳过的行数。这些行将用指定的分隔符填充。将新数据追加到现有文件时,新数据距现有数据的末尾有一定偏移。

        行偏移量从 0 开始,因此 'roffset',0 指示 MATLAB 从目标文件的第一行开始写入(即默认值)。但是,当追加到文件时,'roffset',0 指示 MATLAB 从紧随现有数据后的第一行开始写入。      示例: 'roffset',2

coffset - 列偏移量

0 (默认) | 标量

        距目标文件左侧的列偏移量,指定为用逗号分隔的对组,由 'coffset' 和标量组成。列偏移量指示写入数值数据前所跳过的列数。这些列将用指定的分隔符分隔。列偏移量从 0 开始,因此 'coffset',0 指示 MATLAB 从目标文件的第一列开始写入(即默认值)。示例: 'coffset',1

newline - 行终止符

'pc' | 'unix'

行终止符,指定为逗号分隔的对组,由 'newline' 和使用回车符/换行符 (CR/LF) 的 'pc' 或使用换行符 (LF) 的 'unix' 所组成。

示例: 'newline','pc'

 

提示:dlmwrite 写入的文件可用电子表格程序读取。此外,如果您的系统安装了适用于 Windows的 Excel,可以使用 xlswrite 创建电子表格。


3、dlmwrite使用示例

例1:写入以制表位分隔的数据

M = magic(3);            %  魔方矩阵

dlmwrite('myFile.txt',M)    %  将矩阵 M 写入文件 myFile.txt

type('myFile.txt')   

8,1,6

3,5,7

4,9,2


例2:写入数据并指定精度

M = magic(3)*pi       % 创建样本数据数M

M = 3×3

   25.1327    3.1416   18.8496

    9.4248   15.7080   21.9911

   12.5664   28.2743    6.2832

dlmwrite('myFile.txt',M,'delimiter','\t','precision',3)   % 用制表位字符分隔并用3位有效数字。

type('myFile.txt')   % 查看文件中的数据。

25.1 3.14 18.8

9.42 15.7 22

12.6 28.3 6.28

 

M = magic(3);

dlmwrite('myFile.txt',M,'precision', '%.6f');    %   使用6位小数精度将矩阵M导入到文件。

type('myFile.txt')                                           %  查看文件中的数据。

 

8.000000,1.000000,6.000000

3.000000,5.000000,7.000000

4.000000,9.000000,2.000000

 

例3:写入和追加数据到文件

M =magic(5);     %创建两个样本数值数据数组。

N = magic(3);

dlmwrite('myFile.txt',M,'delimiter',' ');     % 将矩阵 M 导入到文件并使用空白作为分隔符。

dlmwrite('myFile.txt',N,'-append',...'delimiter',' ','roffset',1)    % 从现有数据偏移一行,将矩阵 N 追加到文件myFile.txt中。

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

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

[matlab] dlmwrite函数的用法的评论 (共 条)

分享到微博请遵守国家法律