MATLAB数据输入和输出C语言转换

上传人:人*** 文档编号:507508521 上传时间:2022-10-24 格式:DOC 页数:8 大小:61.50KB
返回 下载 相关 举报
MATLAB数据输入和输出C语言转换_第1页
第1页 / 共8页
MATLAB数据输入和输出C语言转换_第2页
第2页 / 共8页
MATLAB数据输入和输出C语言转换_第3页
第3页 / 共8页
MATLAB数据输入和输出C语言转换_第4页
第4页 / 共8页
MATLAB数据输入和输出C语言转换_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《MATLAB数据输入和输出C语言转换》由会员分享,可在线阅读,更多相关《MATLAB数据输入和输出C语言转换(8页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 数据输入和输出一、 概述MATLAB可读和写的文件格式:文件格式文件内容扩展名读、写文件的函数MATLAB保存的MATLAB工作区.matload,save文本Text任意textscan,textread限定文本任意dlmread,dlmwrite逗号分隔的数值.csvcsvread,csvwriteXMLXML-格式文本t.xmlxmlread,xmlwriteAudioNeXT/SUN sound.auauread,auwriteMicrosoft WAVE sound.mavmavread,mavwriteMovieAudio/video

2、.aviavireadScientific dataData in Common Data Format.cdf cdfread,cdfwriteFlexible Image Transport system data.fitsfitsreadData in Hierarchical Data Format.hdfhdfreadSpreadsheetExcel worksheet.xlsxlsread,xlswriteLotus 123 worksheet.wk1wk1read,wk1writeGraphicsTIFF/PNG/HDF/BMP/JPEG imageGIF/PCX/XWD/Cur

3、sor/Icon image.tiff .png .hdf .bmp .jpeg.gif .pcx .xwd .cur .icoimread,imwrite二、 使用输入向导(Import Wizard)从菜单File-Import Data打开Import Wizard;或者命令窗口输入函数uiimport。从剪贴板开始Import Wizard:Edit-Paste to workspace。三、 保存和加载MAT文件MAT文件是双精度、二进制、MATLAB格式的文件。输出到MAT文件:save filename var1 var2 str*;可以通过var1 var2 选择性保存变量;也

4、可以使用通配符“*”。查看MAT文件中的变量:whos file 文件名。存放结构数组的某个字段:加上“-struct”选项。在已经存在的MAT文件上添加数据:-append选项。禁止压缩和Unicode字符编码文件,在save语句中加入“-v6”或者File-Preferences- General-MAT-Files-MAT-File save options-Ensure backward compatibility(-v6)。save语句默认为数据压缩。选择输出格式:“-ascii”、“-tabs”、“-double”“-v4”。从MAT文件输入数据:load函数。四、 输入文本数据各

5、种输入函数的数据定界符:csvread仅逗号dlmread任何字符(可指定)fscanf任何字符load仅空格textread任何字符textscan任何字符详见:doc 函数名。textscan和textread性能比较:前者有更好的性能,特别是读大文件时;使用前者首先要打开文件,最后要关闭文件,可从文件任意位置读;前者只输出一个单元数组,不必给每个被读字段指定一个输出参数;前者有更多的数据转换选项和更多的用户设置选项。五、 输出文本数据ASCII数据输出函数的特点:csvwrite仅逗号dlmwrite任何字符(可指定)fprintf任何字符diary仅空格saveTab或空格六、 输入/

6、输出标准图像文件imfinfo得到有关图像的信息imread输入图像数据imwrite输出图像数据imshow、imview显示图像七、 输入/输出音频和视频数据aufinfo返回描述声音文件信息aviinfo返回包含AVI文件信息的结构wavfinfo返回描述声音(WAV)文件信息mmfileinfo通用的多媒体信息函数auread从AU文件读入音频和视频数据aviread从AVI文件读数据wavread从Microsoft WAVE声音文件读movie播放录制的多帧影片audiorecorder建立录音器对象auwrite按AU格式输出数据wavwrite按WAV格式输出声音数据avifi

7、le建立avifile对象addframe获取图像序列getframe获取图片八、 输入/输出电子表数据xlsfinfo确定文件是否包含可读的Excelxlswrite将一个矩阵输出到Excel电子表格xlsread从一个Excel读入矩阵数据wk1finfo确定一个文件是否包含Lotus WK1wk1write矩阵输出到Lotus表格wk1read从Lotus 123读数据到MATLAB九、 低级文件输入/输出函数fopen打开文件fread读二进制数据fwrite写二进制数据fseek重新设置文件指针的位置ftell得到文件指针的位置ferror查询文件输入/输出时的错误fgetl从文件读

8、一行文本,丢弃换行符fgets从文件读一行,保留换行符fscanf从ASCII文件读数据fclose关闭文件fprintf转换数据并将它们输出到文件或屏幕Matlab 转换为C语言 6.1版本的Matlab软件包中提供了C/C+的数学和图形库,通过其编译器支持可以将Matlab中编写的m文件转换成以C/C+代码的文件,而且可以将m文件生成dll库,甚至我们可以直接调用其中的库函数,生成并发布不必依赖Matlab的可执行文件。通过mcc编译器生成C/C+代码,进而可以在VC或者其它编译器生成可独立执行的应用程序。下面具体讨论如何利用Matlab编译器从m文件生成C/C+代码,并嵌入用户代码,生成

9、运行时不需Matlab支持的应用程序。设matsum.m文件,内容如下:functionsum=matbs(a,b)%sumsum=a+b用mcc命令转换为C/C+代码,命令行参数如下生成C文件mcc-t-LCmatsum.m生成C+文件mcc-t-LCppmatsum.m生成动态链接库函数mcc-t-Wlib:sum-Tlink:libmatsum.m注意lib:后跟生成的库文件名不能和原m文件名相同(此处为sum),此处只能生成C语言方式的动态链接库。该编译命令共生成9个文件,其中sum.lib和sum.dll是可以在C/C+应用程序中调用的动态链接库文件。模极大值程序(似乎有错误)fun

10、ction x,I = localmax(x,rInit);%LOCALMAX Compute local maxima.% M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 05-Oct-96.% Last Revision: 25-May-2003.% Copyright 1995-2004 The MathWorks, Inc.% $Revision: 1.5.4.2 $ $Date: 2004/03/15 22:41:01 $r,c = size(x);if nargin=1 , rInit = r; end% Regularization

11、of x (!?)%-regule = 1;if regule=1 wav = sym4; lev = 5; cfs,len = wavedec(x(rInit,lev,wav); x(rInit, = wrcoef(a,cfs,len,wav);endx = zeros(r,1) diff(abs(x),1,2);x(abs(x)sqrt(eps) = 0;x(x0) = 1;x = zeros(r,1) diff(x,1,2);I = find(x=-2);x(x-2) = 0;x(I) = 1;% Chain maxima - Eliminate false maxima.%-ideb

12、= rInit ; step = -1; ifin = 1;max_down = find(x(ideb,);x(ideb,max_down) = max_down;if rInit2 , return; endfor jj = ideb:step:ifin max_curr = find(x(jj,); val_max = zeros(size(max_curr); for k = 1:length(max_down) nul,ind = min(abs(max_curr-max_down(k); val_max(ind) = max_down(k); end x(jj,max_curr)

13、= val_max; max_down = max_curr(find(val_max);end EXAMPLE2wavelab802中有一个求模极大值的函数,他还牵涉到wavelab802802中的其他函数,大家可以去查。function ro = localmaxima(P,interval)% Find all the real roots of poly. P within the real interval a,ba = interval(1); b= interval(2);EPS = 10(-10);ro = roots(P);realpos = find(abs(imag(ro) a & rob);ro = ro(pos);ro = sort(ro); % % Part of WaveLab Version 802% Built Sunday, October 3, 1999 8:52:27 AM% This is Copyrighted Material% For Copying permissions see COPYING.m% Comments? e-mail wavelabstat.stanford.edu% localmax()只是用来求局部极大值, Example3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号