matlab导出数据

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab 导出数据(fprintf,dlmwrite ,xlswrite) 1. 用fprintf 函数写数据到txt,xls fprintf函数可以将数据按指定格式写入到文本文件中,也可以显示字符串、计算结果。 其调用格式为: count = fprintf(fid, format, val1, val2, ...) 其中fid是我们要写入数据文件的文件标识,format是控制数据显示的字符串。如果fid丢失,数据将写入到标准 输出设备(命令窗口)。格式(format)字符串指定队列长度,小数精度,域宽和输出格式的其他方面。它包 括文字数字字符(%)和字符序列(用于指定输出数据显示的精确格式)。 例子: fprintf('%6.4d\n',123) 显示十进制整数数据 fprintf('%s\n','string') 显示字符数据 fprintf(1,'It''s Friday.\n') 结果显示为:It's Friday.
>> type exp.txt 1 4 7 2 5 8 3 6 9 fprintf输出是一列一列的从左到右输出。 >> dlmwrite('eg2.dat',a,'\n'); >> type eg2.dat 1 2 3 4 5 6 7 8 9 dlmwrite 输出是一行一行的从上到下输出。 下面是一个比较简单的图像处理程序: clear;%清除当前工作区所有变量 data=imread('E:\2D前处理\eg1.bmp');%从图像文件夹中读取图像eg1.bmp data=double(data);%将图像数组data转化为double 类型 [x,y]=size(data);% 求数组大小,x是data数组有多少行,y是data数组有多少列 data1=imresize(data,[x,y*2/1.732]);%实现对图像的左右插值放大2/1.732倍 [x,y]=size(data1);%%求放大后图像数组大小 fid = fopen('E:\2D前处理\Particle\test.dat', 'wt');% 打开图像数组的将要输出到文件 fprintf(fid, '%2.0f\t%2.0f\n', x, y);% 输出x,y值 fprintf(fid, '%2.0f\n', data1);% 输出图像数组数据 fclose(fid);%关闭文件指针
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 4.0000000e+000 5.0000000e+000 7.0000000e+000 8.0000000e+000 3.xlswrite 写入excel
Example: x = 0:.1:1; y = [x; exp(x)]; fid = fopen('exp.txt', 'w'); fprintf(fid, '%6.2f .8f\n', y); fclose(fid)
tip:执行上述代码执行,肯定不会换行的,换行的问题试一下下面的代码 x = 0:.1:1; y = [x; exp(x)]; fid = fopen('exp.txt', 'wt'); fprintf(fid, '%6.2f .8f\n', y); 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 模式。
3.0000000e+000 6.0000000e+000 9.0000000e+000
4.fprintf 和dlmwrite 区别
MATLAB���������
wk.baidu.com
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);
相关文档
最新文档