matlab导出数据(fprintf,dlmwrite,xlswrite)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

matlab导出数据(fprintf,dlmwrite,xlswrite)

1.用fprintf 函数写数据到txt,xls

Example:

x = 0:.1:1;

y = [x; exp(x)];

fid = fopen('exp.txt', 'w');

fprintf(fid, '%6.2f %12.8f\n', y);

fclose(fid)

tip:执行上述代码执行,肯定不会换行的,换行的问题试一下下面的代码

x = 0:.1:1;

y = [x; exp(x)];

fid = fopen('exp.txt', 'wt');

fprintf(fid, '%6.2f %12.8f\n', y);

fclose(fid);

x = 1;

fid = fopen('exp.txt', 'w');

fprintf(fid, '%d', x);

fclose(fid);

这次就没有问题了,我们要注意fopne的参数wt 而不是 w,这是matlab的在线帮助的东东

fid = fopen(filename, permission_tmode) on Windows systems, opens the file in text

mode instead of binary mode (the default). The permission_tmode argument consists

of any of the specifiers shown in the Permission Specifiers table above, followed

by the letter t, for example 'rt' or 'wt+. On UNIX®systems, text and binary mode

are the same. (UNIX is a registered trademark of The

Open Group in the United States and other countries).

就是有两种读取模式binary or text. When choosing the binary model,No characters are

given special treatment. 所以我们选择要注明text模式。

2. dlmwrite :将一个矩阵写到由分隔符分割的文件中。

在保存整数到文件时使用save存为ascii文件时,常常是文件里都是实型格式的数据(有小数点,和后面很多的0,看着很不方便)。于是要保存此类数据时,我们可以使用此dlmwrite命令。

使用方法:

dlmwrite('filename', M)

使用默认分隔符“,”将矩阵M写入文本文件filename中;

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

使用分隔符D分割数据,“\t”表示tab分割,“,”为默认分割符;dlmwrite('filename', M, 'D', R, C)

从矩阵M的第R行、第C列开始,作为要写矩阵块的左上角,将数据用D分割写入文件。

其他用法有:

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

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

例如:

a = [1 2 3; 4 5 6; 7 8 9];

dlmwrite('test.txt', a);

则test.txt中的内容为:

1,2,3

4,5,6

7,8,9

而使用save

a = [1 2 3; 4 5 6; 7 8 9];

save 'tst.txt' a -ascii;文本文件里的内容为:

1.0000000e+000

2.0000000e+000

3.0000000e+000

4.0000000e+000

5.0000000e+000

6.0000000e+000

7.0000000e+000 8.0000000e+000 9.0000000e+000

3.xlswrite 写入excel

4.fprintf和dlmwrite区别

MATLAB在图像处理中的应用,实际是对图像矩阵的操做运算,MATLAB 在图像处理中的常用的命令有:

imread(): 从图像文件夹中读取图像的函数;

imwrite(): 输出图像的函数;

imshow(), image(): 图像显示于屏幕的函数;

imcrop(): 对图像进行裁剪的函数;;

imresize(): 实现对图像的插值缩放的函数;

imrotate(): 用实现对图像的旋转。

im2double(),double(): 将图像数组转化为double类型;

im2uint8(),uint8(): 将图像数组转化为uint8类型;

im2uint16(),uint16(): 将图像数组转化为uint16类型;

关于上述的命令使用方法可以参考一些MATLAB方面的书籍或者用MATLAB自带的帮助(help or doc)命令.

如我想知道dwt2()命令的使用方法可以执行下面的命令

>> help dwt2 或 >>doc dwt2

系统就会告诉你它的使用要求和方法,如果系统说找不到对应的帮助文件,那就可能是你装的MATLAB里面没有这个命令,那很可能这个命令就不能使用.

在图像数组的输出到文件的操作上,我发现fprintf比dlmwrite明显快很多,但这两个输出的数据格式有些差别,见下面操作:

>> a=[1 2 3;4 5 6;7 8 9]

a =

1 2 3

4 5 6

7 8 9

>>fid = fopen('exp.txt','w');

fprintf(fid,'%2.0f\n',a);

fclose(fid);

相关文档
最新文档