电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

北京交大Matlab教程Ch8(全)课件

36页
  • 卖家[上传人]:我***
  • 文档编号:145363947
  • 上传时间:2020-09-19
  • 文档格式:PPT
  • 文档大小:336KB
  • / 36 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1,第8章 高级编程技术,2,本章目标,掌握MATLAB文件处理方法 理解MATLAB应用程序接口的原理 了解结构和元胞这两种复杂数据类型 了解面向对象编程的基本概念,3,主要内容,8.1文件 8.2 应用程序接口,4,8.1文件,文件可分为两类: 文本文件 由字符和与字符的显示格式有关的控制符构成 常见扩展名:“TXT” 、“BAT”、“HTM” 二进制文件 二进制文件为非文本文件 常见扩展名:“COM”、“EXE” 、“BMP” 、“WAV”,5,MATLAB中基本的低级文件I/O指令:,1打开和关闭文件 fopen、fclose 2格式读写 fprintf、fscanf、fgetl、fgets 3非格式读写 fread、fwrite 4文件定位和状态 feof、fseek、ftell、ferror、frewind,6,8.1.1文件的打开与关闭,1fopen函数 fidfopen(filename,permission) fid,message=fopen(filename,permssion) filename,permission,machineformat=fopen(fi

      2、d) fid =fopen(all) 2fclose函数 status=fclose(fid) status=fclose(all) 例:打开一个名为std.dat的数据文件并进行读操作,命令为: fidfopen(my.txt,r),7,8.1.2格式化数据的读写,fprintf函数 count=fprintf(fid,format , A .) fscanf函数 A, count=fscanf(fid, format, size),8,例8-1,计算当x=0 1时f(x)=ex的值,并将结果写入到文件my.txt中。 程序 x=0:0.1:1; y=x;exp(x);%y有两行数据 fid=fopen(my.txt,w); fprintf(fid,%6.2f %12.8fn,y); fclose(fid);,9,例8-2,从上例中生成的文件my.txt中读取数据,并将结果输出到屏幕。 程序 fid = fopen(my.txt,r); a,count = fscanf(fid,%f %f,2 inf); fprintf(1,%f %fn,a); fclose(fid); 输出 同例

      3、8-1文件中的数据格式。,10,8.1.3 文件定位和文件状态,1feof函数:检测文件是否已经结束 status=feof(fid) 2ferror函数:用于查询文件的输入、输出错误信息 msg=ferror(fid) 3frewind函数:使位置指针重新返回文件的开头 frewind(fid) 4fseek函数:设置文件的位置指针 status=fseek(fid, offset, origin) 5ftell函数:用于查询当前文件指针的位置 position=ftell(fid);,11,例8-3 输出文件的大小。,程序 fid=fopen(my.txt,r); fseek(fid,0,eof); x=ftell(fid); fprintf(1,File Size=%dn,x); frewind(fid); x=ftell(fid); fprintf(1,File Position =%dn,x); fclose(fid);,输出 File Size = 231 File Position = 0,12,8.1.4按行读取数据,1fgetl函数:按行从文件中读取数据,但不读取换行

      4、符。 line=fgetl(fid) 2fgets函数:用于从文件中读取行、保留换行符并把行作为字符串返回。 (1)line=fgets(fid) (2)line=fgets(fid,nchar),13,例8-4,编写一个程序,用于读取例8-1生成的数据。 程序 fid=fopen(my.txt,r); while feof(fid)%在文件没有结束时按行读取数据 s=fgets(fid); fprintf(1,%s,s); end fclose(fid); 输出 同例8-1文件中的数据格式。,14,8.1.5二进制数据文件的读写,fwrite函数:用于向一个文件写入二进制数据 count=fwrite(fid, A, precision)。 fread函数:用于从文件中读二进制数据 A,count=fread(fid, size, precision) 注意:使用函数fread()和fwrite()读写文件时,必须以二进制方式打开文件,15,例8-5,将5行5列“魔方阵”存入二进制文件中。 程序 fid=fopen(my.dat,w); a=magic(5); fwrite(fid,

      5、a,long); fclose(fid);,16,例8-6,从二进制文件中读取“魔方阵”。 程序 fid=fopen(my.dat,r); A,count=fread(fid, 5, inf, long); fclose(fid); A,17,8.1.6 图像、声音文件的读写,1imread函数:从文件中读入图像 A = imread(filename,fmt) A, map = imread(filename,fmt) 2image函数:显示图像 image(A) 3imwrite函数:将图像写入文件 imwrite(A, filename, fmt) imwrite(A, map, filename, fmt),18,例8-7,显示一幅真彩(RGB)图像。 程序 x,map=imread(C:MATLAB7toolboxmatlabdemosstreet1.jpg); image(x);,19,例8-8 将图像写入文件,程序 x,map=imread(C:MATLAB7toolboxmatlabdemosstreet1.jpg); imwrite(x,my.bmp);%将图像保存为

      6、真彩色的bmp x,map=imread(my.bmp); image(x);,20,8.1.6图像、声音文件的读写,4imfinfo函数:查询图像文件信息 innfo imflnfo(filename) 5wavread函数:用于读取扩展名为“.wav”的声音文件 y=wavread(file) y, fs, nbits=wavread(file) 6wavwrite函数:用于将数据写入到扩展名为“wav”的声音文件中 wavwrite(y, fs, nbits, wavefile) 7wavplay函数:利用windows音频输出设备播放声音 wavplay(y,fs),21,例8-9,读取一个音频数据文件,以不同频率播放,并显示声音波形。 程序: y=wavread(C:MATLAB7toolboxsimulinksimdemossimgeneraltoilet.wav) plot(y); wavplay(y); wavplay(y,11025); wavplay(y,44100);,22,8.2 应用程序接口,MATLAB的外部接口应用包括如下内容: (1)在MATLAB中调用

      7、已有的C/C+语言代码; (2)在C/C+语言中调用MATLAB的算法; (3)利用COM标准进行客户/服务器模式开发; 例如在Visual Basic程序或者Microsoft Excel中调用MATLAB的算法 (4)在C/C+语言中读写MAT数据文件。,23,8.2.1 MEX文件,例8-10 简单MEX文件示例mexHelloWorld.c。 程序: #include mex.h void mexFunction(int nlhs,mxArray *plhs,int nrhs,const mxArray *prhs) mexPrintf(Hello Matlab World!); ,24,8.2.2 MATLAB计算引擎,MATLAB的计算引擎应用就是利用MATLAB提供的一组接口函数,在用户开发的C/C+语言应用程序中,通过某种通信机制后台调用MATLAB应用程序以完成复杂的系统任务。,25,例8-11,设计一程序,在C/C+语言中调用mesh函数来绘制高斯矩阵的曲面。 解题步骤:,26,例8-11 程序:,#include #include engine.h void ma

      8、in() Engine *ep; int status = 0; / 打开计算引擎 ep = engOpen(NULL); if( ep = (Engine *)NULL ) printf(错误:无法打开MATLAB计算引擎n ); exit(-1); / 执行MATLAB指令 engEvalString(ep,mesh(peaks);); getchar(); / 关闭MATLAB计算引擎 status = engClose(ep); if(status != 0) printf(无法正常关闭MATLAB计算引擎n); exit(-1); ,27,8.2.3基于COM组件的接口编程,该方法的主要特点有: (1)应用程序完全脱离MATLAB工作环境; (2)MATLAB数学库和工具箱中包括的各种各样的函数,所以降低了编写算法难度; (3)由于将算法程序做成了COM组件的形式,所以实现了算法的保密。,28,8.2.4在C/C+语言中读写MAT数据文件,支持C/C+语言读写MAT文件的函数库有下面几个: 1打开数据文件matOpen MATFile * matOpen(const char

      9、 *filename,const char *mode) 2关闭数据文件matClose int matClose(MATFile *mfp) 3获取变量matGetVariable mxArray *matGetVariable(MATFile *mfp,const char *name) 4写入数据matPutVariable int matPutVariable(MATFile *mfp, const char *name,const mxArray *mp),29,扩展阅读,8.3 结构数组 8.4 元胞数组 8.5 面向对象程序设计,30,应用举例,例8-12 在C/C+语言中调用MATLAB计算魔方阵,并将结果显示到屏幕。,31,程序代码1,#include engine.h #include void main() Engine *ep; double *p; mxArray *equation; int i = 0,j=0; int status = 0; / 打开计算引擎 ep = engOpen(NULL); if( ep = (Engine *)NULL ) printf(错误:无法打开MATLAB计算引擎n ); exit(-1); ,32,程序代码2,/ 执行MATLAB指令 engEvalString(ep,A = magic(5);); equation=engGetVariable(ep,A); p=mxGetPr(equation); printf(nMATLAB 中计算magic(5)n); for(i=0;i5;i+) for(j=0;j5;j+) printf(%8.0lf,*(p+i+j*5); printf(n); / 关闭MATLAB计算引擎 status = engClose(ep); if(status != 0) printf(无法正常关闭MATLAB计算引擎n); exit(-1); ,33,例8-13,34,程序代码1,#include #include #include engine.h void main() Engine *ep; int status = 0; ep = engOpen(NULL); / 执行MATLAB指令 double A=2,

      《北京交大Matlab教程Ch8(全)课件》由会员我***分享,可在线阅读,更多相关《北京交大Matlab教程Ch8(全)课件》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 2020届中考英语备考复习-作文课件

    2020届中考英语备考复习-作文课件

  • 2019年中考英语复习-专题十五-交际运用(试卷部分)课件

    2019年中考英语复习-专题十五-交际运用(试卷部分)课件

  • 2019届二轮复习-高中英语-情态动词和虚拟语气课件

    2019届二轮复习-高中英语-情态动词和虚拟语气课件

  • 2019届一轮复习苏教版物质的跨膜运输课件

    2019届一轮复习苏教版物质的跨膜运输课件

  • 2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

    2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

  • 2021届新中考物理冲刺备考复习-力-弹力-重力课件

    2021届新中考物理冲刺备考复习-力-弹力-重力课件

  • 2019届一轮复习人教版种群的特征和数量变化课件

    2019届一轮复习人教版种群的特征和数量变化课件

  • 2020年高考地理一轮复习--等高线地形图-课件

    2020年高考地理一轮复习--等高线地形图-课件

  • 2019版高考英语一轮复习-Unit-1-Living-well课件

    2019版高考英语一轮复习-Unit-1-Living-well课件

  • 2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

    2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

  • 2019届高三第二轮复习专题二万有引力定律及其应用课件

    2019届高三第二轮复习专题二万有引力定律及其应用课件

  • 2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

    2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

  • 2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

    2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

  • 2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

    2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

  • 2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

    2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

  • 2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

    2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

  • (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

    (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

  • 2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

    2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

  • 2021人教部编版历史九年级上册习题课件:第18课美国的独立

    2021人教部编版历史九年级上册习题课件:第18课美国的独立

  • 2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

    2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

  • 点击查看更多
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.