第五篇mathlab_文件输入输出(IO).ppt
文本预览下载声明
%在图形窗体中显示图像 image(img) %导入Excel电子表格 xls = importdata(xlsexamp.xls); whos Name Size Bytes Class img 473x600x3 851400 uint8 array snd 1x1 103296 struct array xls 1x1 824 struct array Grand total is 864346 elements using 955520 bytes %xls的内容 xls xls = data: [10x2 double] textdata: {9x3 cell} 导入的图片文件在MATLAB图形窗体中的显示效果如图5-2所示。 例子5-5使用importdata函数导入了三种不同格式的数据文件,并且利用不同的方式将相应的数据显示出来,比如声音文件通过声卡播放出来,而图像文件则通过图形窗体显示出来。importdata函数可以看作是导入数据的万能函数,该函数几乎可以导入MATLAB支持的各种格式类型的数据文件。该函数通过函数finfo获取数据文件的类型信息,然后使用不同的辅助函数来加载不同的数据文件,例如加载图像文件使用imread函数,加载声音文件则使用auread函数等。使用这个函数的好处非常明显,就是利用一个函数就可以完成加载各种数据的操作,不过也有相应的缺点,就是程序的效率不比使用专门的函数好。有兴趣的读者可以尝试读读importdata函数的源代码,这里给出部分代码片段。 图5-2 加载的图片文件的显示效果 例子5-6 importdata函数源代码清单片段。 ? % 读入Lotus电子表格文件 case wk1 [out.data, out.textdata] = wk1read(FileName); out = LocalRowColShuffle(out); % 读入AVI影片格式文件 case avi out = aviread(FileName); % 读入图形图像格式文件 case im [out.cdata, out.colormap] = imread(FileName); … % 读入AU格式声音格式文件 case {au,snd} [out.data, out.fs] = auread(FileName); % 读入WAV格式声音文件 case wav [out.data, out.fs] = wavread(FileName); … 表5-3 部分数据文件的专用加载函数 5.2.4 导出二进制格式数据 MATLAB除了能够导入前面小节介绍的各种格式的数据文件外,还可以将工作空间的数据导出成不同格式的文件。这一过程不仅可以通过图形用户界面完成,还可以通过MATLAB函数来完成。不过,导出二进制文件没有统一的函数可以使用,不同格式的文件有不同的导出函数,在表5-4中对部分函数进行了总结。 表5-4 二进制数据文件导出函数 例子5-7 导出数据为AVI文件。 001 function avi_examp 002 %AVI_EXAMP 导出数据为AVI格式 003 004 % 创建AVI文件对象 005 aviobj = avifile(mymovie.avi,fps,5); 006 % 为AVI文件添加帧数据 007 for k=1:25 008 h = plot(fft(eye(k+16))); 009 set(h,EraseMode,xor); 010 axis equal; 011 % 获取当前帧数据 012 frame = getframe(gca); 013 % 添加帧数据到AVI文件 015 aviobj = addframe(aviobj,frame); 016 end 017 % 关闭AVI文件句柄 018 aviobj = close(aviobj); 在MATLAB命令行窗口中运行该函数,运行过程中将连续绘制2
显示全部