MATLAB dlmwrite()和dlmread()的用法(附带实例)

MATLAB dlmwrite()和dlmread()的用法(附带实例)

为处理文本文件,MATLAB 还提供了多种处理函数,使用不同的格式读取不同数据类型的文本文件。本节讲解常用的 dlmwrite() 和 dlmread() 的用法。

MATLAB dlmwrite()函数

在 MATLAB 中,利用 dlmwrite() 函数可以向文档中写入数据,功能强于 csvwrite() 函数。

dlmwrite() 函数的调用格式如下:

dlmwrite('fName', M):将矩阵 M 的数据写入文件 fName 中,以逗号分隔。

dlmwrite(fName, M, 'D'):将矩阵 M 的数据写入文件 fName 中,采用指定的分隔符分隔数据。如果需要 Tab 键,则可以用“\t”指定;

dlmwrite('fName', M, 'D', R, C):指定写入数据的起始位置;

dlmwrite(fName, M, 'attrib1', value1, 'attrib2', value2, ...):指定任意数目的参数。可以指定的参数如下表所示;

dlmwrite('fName', M, '-append'):如果 fName 指定的文件存在,则在文件后面写入数据;如果不存在,则覆盖源文件;

dlmwrite('fName', M, '-append', attribute-value list):续写文件,并指定参数。

表:dlmwrite() 函数可以指定的参数

参数名

功能

delimiter

用于指定分隔符

newline

用于指定换行符,可以选择“PC”或“UNIX”

rroffset

行偏差,指定文件第一行的位置,rroffset的基数为0

coffset

列偏差,指定文件第一列的位置,coffset的基数为0

precision

指定精确度,可以指定精确维数,或者采用C语言的格式,如“%17.5f”

【实例】 dlmwrite() 函数的应用示例。在命令行窗口中输入如下代码,并保存为 M 文件。

clear all

m=rand(4);

dlmwrite('myfile2.txt',m,'delimiter','\t','precision',5) %指定精确度

type myfile2.txt

dlmwrite('myfile4.txt',m,'delimiter','\t','precision',3) %指定精确度

type myfile4.txt

运行后,输出结果如下:

0.24352 0.25108 0.83083 0.28584

0.92926 0.61604 0.58526 0.7572

0.34998 0.47329 0.54972 0.75373

0.1966 0.35166 0.91719 0.38045

0.244 0.251 0.831 0.286

0.929 0.616 0.585 0.757

0.35 0.473 0.55 0.754

0.197 0.352 0.917 0.38

【实例】向文件中写入多行数据。在命令行窗口中输入如下代码,并保存为 M 文件。

clear all

M = magic(3);

dlmwrite('myfile5.txt', [M*5 M/5], ' ')

type myfile5.txt %输出 myfile5.txt 进行第一次观察

dlmwrite('myfile5.txt', rand(3), '-append', 'rroffset', 1, 'delimiter', ' ')

type myfile5.txt %输出 myfile5.txt 进行第二次观察

运行后,输出结果如下:

%输出 myfile5.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

%输出 myfile5.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

0.56782 0.5308 0.12991

0.075854 0.77917 0.56882

0.05395 0.93401 0.46939

MATLAB dlmread()函数

在 MATLAB 中,利用 dlmread() 函数可以从文档中读取数据,其调用格式如下:

M=dlmread(fName)

M=dlmread(fName,delimiter)

M=dlmread(fName,delimiter,R,C)

M=dlmread(fName,delimiter,range)

fName 文件中只能包含数字,并且数字之间以逗号分隔;

M 是一个数组,其行数与 fName 的行数相同,列数为 fName 列的最大值;对于元素不足的行,以 0 补充;

参数 delimiter 用于指定文件中的分隔符;

读取的数据由数组 range 指定,range 的格式为 [R1 C1 R2 C2]。其中,R1、C1 为读取区域左上角的行和列,R2、C2 为读取区域右下角的行和列。

dlmread() 函数与 csvread() 函数的差别在于,dlmread() 函数在读取数据时可以指定分隔符,如果不指定,则默认分隔符为逗号。

【实例】dlmread() 函数的应用示例。在命令行窗口中输入如下代码,并保存为 M 文件。

clear all

M = gallery('integerdata', 100, [5 8], 0);

dlmwrite('myfi1e.txt', M, 'delimiter', '\t')

m1=dlmread('myfi1e.txt')

m2=dlmread('myfi1e.txt', '\t', 2, 3)

m3=dlmread('myfi1e.txt', '\t', 'c1..G4')

运行后,输出结果如下:

m1 =

96 77 62 41 6 21 2 42

24 46 80 94 36 20 75 85

61 2 93 92 82 61 45 53

49 83 74 42 1 28 94 21

90 45 18 90 14 20 47 68

m2 =

92 82 61 45 53

42 1 28 94 21

90 14 20 47 68

m3 =

62 41 6 21 2

80 94 36 20 75

93 92 82 61 45

74 42 1 28 94

相关推荐

《进击的巨人》
best365官网登陆

《进击的巨人》

07-04 👁️ 5336
4复数的friends为什么连用单数动词
best365官网登陆

4复数的friends为什么连用单数动词

09-22 👁️ 4136
斯德哥尔摩综合征
best365官网登陆

斯德哥尔摩综合征

09-18 👁️ 4644