matlab中dlmwrite的用法

想把mat文件转成txt文件保存,但是利用save命令得到的是科学计数法的形式,用dlmwrite命令得到的不是科学计数法形式,如

dlmwrite('UnitNormalVector.txt', UnitNormalVector, 'delimiter' , '\t' , 'precision', '%0.4f')

表示将UnitNormalVector.mat转成UnitNormalVector.txt,其中有制表符隔开,保留四位小数。

dlmwrite的简单介绍如下:

功能说明

将矩阵写到字符分隔开的文本文件中

 

函数语法

dlmwrite(filename, M)

dlmwrite(filename, M, 'D')

dlmwrite(filename, M, 'D', R, C)

dlmwrite(filename, M, 'attrib1', value1, 'attrib2', value2, ...)

dlmwrite(filename, M, '-append')

dlmwrite(filename, M, '-append', attribute-value list)

 

参数解析

dlmwrite(filename, M)

用默认的分隔符(逗号)将整个矩阵M写到文件名为filename的文本文件中

dlmwrite(filename, M, 'D')

用分隔符D(缺省为逗号,制表符可以用\t表示)将整个矩阵M写到filename文件中

dlmwrite(filename, M, 'D', R, C)

用分隔符D将部分矩阵M写到filename文件中:从矩阵的第R行,第C列开始写到文件中(R、C从零开始计算)。

dlmwrite(filename, M, 'attrib1', value1, 'attrib2', value2, ...) 

按一定的选项将矩阵M写到filename文件中,其中attrib1和value1为属性对,属性对参看下表。

 

属性属性值
delimiter分隔符,用来将矩阵中相邻两个元素分隔开
newlinenewline的可选值为'pc'和'unix',该属性与每行的结束符有关。newline为'pc'时,每行以\r\n(回车换行)结束,为'unix'时,每行以\n(换行)结束。
roffset输出的矩阵数据前面所加的空行数
coffset输出的矩阵数据前面所加的空列数
precision输出的矩阵数据的精度,指定数据的有效数位或以C语言风格的格式输出(以%开始,如'%10.5f')

 

dlmwrite(filename, M, '-append') 

在文件的末端输出矩阵M。如果没有指定-append选项,dlmwrite会覆盖已经存在的文件。

dlmwrite(filename, M, '-append', attribute-value list) 

允许使用属性对列表。

 

经验之谈

生成的文件对于工作表程序都是可读的。如果系统中装有Excel程序,可以直接用xlswrite函数创建工作表。

dlmwrite函数不支持细胞元数组的输出,若输出纯数字的细胞元数组,可先用cell2mat函数转成矩阵后再输出;其它情况可以借助于更低级的输出函数将数据写到文件中。更多帮助可以查看MATLAB Data Import and Export下的Exporting a Cell Array to a Text File文档。

 

典型实例

例1::

FileName='Data_dlmwrite.txt';

M=rand(4);

dlmwrite(FileName, M, 'delimiter' , '\t' , 'precision', 6)        %将矩阵M导出到FileName文件中,分隔符为制表符,有效数位为6位。

type(FileName)

 

例2::

FileName='Data_dlmwrite.txt';

M=rand(4);

dlmwrite(FileName, M, 'precision', '%.6f', 'newline', 'pc')        %将矩阵M导出到FileName文件中,分隔符为默认的逗号,小数点后面保留六位,每行以\r\n结束。

type(FileName)        %可以试一下上面的newline属性改为unix再用记事本打开该文件

 

例3::

FileName='Data_xlmwrite.txt';                %文件名

M = magic(3);

dlmwrite(FileName, [M*5 M/5], ' ')            %用dlmwrite函数先把数据(三行六列)写到文件,分隔符为空格

type(FileName)                                %先显示一次FileName的内容

dlmwrite(FileName, [M/3], '-append', 'roffset', 1, 'delimiter', ' ')        %再用dlmwrite往文件的未端添加数据(三行三列)(append代表添加,roffset代表添加一行空行,delimiter代表分隔符为空格)

type(FileName)                                %再显示一次更新后的FileName的内容

dlmread(FileName)                            %用dlmread函数载入文件,会发现后三行的后三列补零处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值