第6章-程序接口

上传人:艳*** 文档编号:181473869 上传时间:2023-01-14 格式:PPT 页数:27 大小:159KB
返回 下载 相关 举报
第6章-程序接口_第1页
第1页 / 共27页
第6章-程序接口_第2页
第2页 / 共27页
第6章-程序接口_第3页
第3页 / 共27页
点击查看更多>>
资源描述
第六章 文件IO&程序接口n文件IO 高级例程 低级例程n编程示例n程序接口6.1 文件IO数据导入数据导入/导出导出:MATLAB提供了强大的提供了强大的数据处理数据处理能力,但是在数能力,但是在数据处理之前,可能需要据处理之前,可能需要导入数据导入数据,处理完之后,可能需,处理完之后,可能需要要导出数据导出数据。例子例子:有一有一excel文件(文件(oilprice_simple.xls)存放存放了石了石油价格的数据,想要绘图显示时间油价格的数据,想要绘图显示时间-价格曲线,如何处理?价格曲线,如何处理?Note:绘图等都没有问题了,但是数据如何从:绘图等都没有问题了,但是数据如何从excel导入导入到到matlab环境?环境?6.1 文件IOMatlab提供了如下文件读写的方式:提供了如下文件读写的方式:1)高级例程高级例程:matlab特有的特有的mat文件文件 指令指令:save、load;2)低级例程低级例程:一般的二进制文件一般的二进制文件 指令:指令:fopen、fread、fwrite、fclose3)其他常见文件类型的操作其他常见文件类型的操作:excel文件、图像、视频文件、图像、视频avi等;等;6.1 文件IO Mat文件格式文件格式:文件头部文件头部+变量名变量名+变量数据变量数据。1)头部)头部:包括:包括MATLAB版本信息、使用的操作系统平台和文件创版本信息、使用的操作系统平台和文件创建时间。建时间。2)数据)数据:按照数据类型、数据长度和数据三个部分保存:按照数据类型、数据长度和数据三个部分保存的。的。数据长度数据类型数据长度数据类型描述文字(124字节)标识版本6.1 文件IO6.1.1 高级例程高级例程 1)save:将当前工作空间中的变量将当前工作空间中的变量保存保存成成MAT文件文件,2)load:将将MAT文件文件中的数据中的数据导入导入到到MATLAB的工作空间中。的工作空间中。note:load和和save指令不仅能够加载和保存指令不仅能够加载和保存MAT格式格式的数据文件,而且还能够加载一般的文本格式文件。的数据文件,而且还能够加载一般的文本格式文件。save指令基本语法:指令基本语法:1)save filename var1 var2.将工作空间中的变将工作空间中的变 量量var1、var2等保存到指定文件等保存到指定文件中;中;2)save(filename,.)save指令的函数格式用法指令的函数格式用法 例子:创建一个例子:创建一个magic矩阵,并保存。矩阵,并保存。save指令指令 例子例子:创建一个:创建一个magic矩阵矩阵A,求其逆矩阵,求其逆矩阵B,将,将A、B保存到保存到magic.mat文件中去。文件中去。Code(save_load_exam.m)magicMat=magic(4);magicInv=inv(magicMat);save magic.mat magicMat magicInvNote:save指令后不用加分号指令后不用加分号“;”。load指令:指令:save-保存保存(write);load载入载入(read)load指令的基本语法:指令的基本语法:1)load filename 将指定文件中将指定文件中所有所有的变量加载到当前的工作空间的变量加载到当前的工作空间2)load filename var1 var2.将指定文件中将指定文件中指定指定的变量加载到当前工作空间的变量加载到当前工作空间 load指令:指令:例子例子:将:将magic.mat载入载入matlab workspace。code:(save_load_exam.m)load magic.mat disp(magicMat);disp(magicInv);6.1 文件IO6.1.2 文本文件操作文本文件操作 针对其他常用的文件格式(针对其他常用的文件格式(非非mat文件文件)。)。6.1 文件IO例子例子:从从excel文件读取石油价格数据文件读取石油价格数据,并保存到并保存到mat文件。文件。Code(oil_price_process.m)fnm=oilprice_simple.xls;dat=xlsread(fnm);%读取对应的xls文件year=dat(:,1);pday=dat(:,2);pnow=dat(:,3);save oilprice.mat year pday pnow;6.1 文件IO6.1.2 低级例程低级例程 底层的文件操作底层的文件操作,包括基本的,包括基本的open、close、read、write。1)打开文件打开文件 fid=fopen(filename,flag);其中,其中,flag为控制文件读写的标识符,它的取值可以为为控制文件读写的标识符,它的取值可以为 *r表示打开的文件进行表示打开的文件进行读读的操作。的操作。*w表示打开的文件进行表示打开的文件进行写写的操作,若文件不存在则的操作,若文件不存在则创建新的文件。创建新的文件。6.1 文件IO6.1.3 低级例程低级例程1)打开文件打开文件 note:1)若能够成功地打开文件,则)若能够成功地打开文件,则fid为非负的整数,为非负的整数,否则为否则为-1。2)关闭文件:)关闭文件:status=fclose(fid)若函数运行成功,则若函数运行成功,则status为为0,否则为,否则为-1。3)读写数据读写数据 MATLAB提供了两大类低级文件提供了两大类低级文件I/O函数进行文件内容函数进行文件内容的读写:的读写:1)二进制文件读写函数二进制文件读写函数 2)文本文件读写函数文本文件读写函数 note:底层例程类似:底层例程类似c语言。语言。6.1 文件IO6.1.4 其他类型文件的操作其他类型文件的操作 1)图像图像:imread、imwrite等等 2)视频视频6.1 文件IO6.1.4 例子例子 例子例子:最简单的办法是使用界面导入向导,打开文件最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。菜单中的导入数据而后按提示操作。Matlab支持的主要数支持的主要数据文件类型和对应函数如下:据文件类型和对应函数如下:6.1 文件IOn导入文本文件导入文本文件 文本文件需要具备统一的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。数据文件可能附带标题行和行列头标签。n数值数据数值数据 对于数值数据可以直接使用load函数装载,例如my_data.txt中数据如下:1 2 3 4 5 6 7 8 9 10 命令A=load(my_data.txt)装载该文本文件数据。如果数值数据使用其它分隔符,可以使用dlmread读入,假设my_data.txt中数据如下:7.2;8.5;6.2;6.6 5.4;9.2;8.1;7.2 命令A=dlmread(my_data.txt,;)读入该数据。n包含行列标签的数值数据包含行列标签的数值数据 例如:Grade1 Grade2 Grade3 78.8 55.9 45.9 99.5 66.8 78.0 89.5 77.0 56.7 fid=fopen(grades.dat,r);grades=textscan(fid,%f%f%f,3,headerlines,1);fclose(fid);n包含字符和数值的混合数据包含字符和数值的混合数据 使用textread函数读入导出文本文件导出文本文件 nsave函数 A=1 2 3 4;5 6 7 8;save my_data.out A ASCII dlmwrite函数 dlmwrite(my_data.out,A,;)nxlsinfo获得文件信息获得文件信息 使用命令type,sheets=xlsfinfo(filename)返回文件类型type和工作表信息。如:type,sheets=xlsfinfo(tempdata.xls)nXlswrite导出数据导出数据 d=Time,Temp;12 98;13 99;14 97 命令xlswrite(tempdata.xls,d,Temperatures,E1)将单元格数组d的数据写出至tempdata.xls文件,新建工作表Temperatures,从该工作表的E1单元格开始写入。6.1 文件IO小结:小结:文件文件IO关注的是数据的导入与导出的问题;关注的是数据的导入与导出的问题;Matlab特有的文件格式是特有的文件格式是.mat文件,通过文件,通过save load指令指令可以读写文件;可以读写文件;针对常用的文件格式,比如图像针对常用的文件格式,比如图像(bmp/jpg),excel文件文件等等matlab提供了高级例程;提供了高级例程;Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存 入磁盘文件(数据导出)的多种途径。6.2 应用程序接口应用程序接口:应用程序接口:混合编程混合编程的问题。的问题。为什么要混合编程为什么要混合编程:1)不同的编程语言有各自的优缺点;)不同的编程语言有各自的优缺点;matlab适合数值计算、适合数值计算、vc等适合界面等;等适合界面等;2)现有资源的整合)现有资源的整合 现有的资源是现有的资源是c或或matlab的,如何利用?的,如何利用?接口方式接口方式:1)数据的交换:通过数据文件。)数据的交换:通过数据文件。2)混合编程:整合到一个程序中去。)混合编程:整合到一个程序中去。6.2 应用程序接口Matlab与与c/c+的混合编程:的混合编程:根据根据主程序框架主程序框架的语言类型划分:的语言类型划分:a)matlab中调用中调用c/c+编写编写mex文件文件;b)c/c+中调用中调用matlab i)matlab计算引擎计算引擎 ii)第三方组件:)第三方组件:matcom iii)com组件组件:新版本的:新版本的matlab的功能。的功能。6.2 应用程序接口6.2.1 mex文件文件1)在)在MATLAB中可调用的中可调用的C或或Fortran语言程序语言程序称为称为MEX文件。文件。2)MATLAB可以直接把可以直接把MEX文件视为它的文件视为它的内建函数内建函数进进行调用。行调用。3)MEX文件主要有以下用途:文件主要有以下用途:a)对于大量现有的)对于大量现有的C或者或者Fortran程序可以无须改写程序可以无须改写成成MATLAB专用的专用的M文件格式而在文件格式而在MATLAB中执行。中执行。b)对于那些对于那些MATLAB运算速度过慢的算法,可以用运算速度过慢的算法,可以用C或者或者Frotran语言编写以提高效率。语言编写以提高效率。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!