140 likes | 309 Views
第 8 章 MATLAB 高级应用. 8.1 MATLAB 应用接口 8.2 低级文件输入输出 8.3 图形文件转储 8.4 Notebook. 8.1 MATLAB 应用接口 8.1.1 MEX 文件. MEX 文件是由 C 或 FORTRAN 程序编译生成的,也可以由 M 文件经由 C 源代码生成。 MEX 文件在 M 文件中可以直接调用。 1. MEX 文件系统设置 MEX 文件的编写与编译需要两个条件:已经安的 MATLAB 应用程序组件及相应的工具和合适的 C 或 Fortran 语言编译器。 2. 测试配置. 8.1.2 使用 MATLAB 编译器.
E N D
第8章MATLAB高级应用 8.1 MATLAB应用接口 8.2 低级文件输入输出 8.3 图形文件转储 8.4 Notebook
8.1 MATLAB应用接口8.1.1 MEX文件 • MEX文件是由C或FORTRAN程序编译生成的,也可以由M文件经由C源代码生成。MEX文件在M文件中可以直接调用。 • 1. MEX文件系统设置 • MEX文件的编写与编译需要两个条件:已经安的MATLAB应用程序组件及相应的工具和合适的C或Fortran语言编译器。 • 2. 测试配置
8.1.2 使用MATLAB编译器 • MATLAB 7.3编译器4.5采用了MATLAB 7.3 Component Runtime(MCR)技术,并且MCR提供了对MATLAB7.3语言的完全支持。 • 不管想生成独立外部的可执行程序(EXE),或者想创建一个C共享库以及软件组件,都是将M文件通过mcc命令来编译。 • 在MATLAB命令窗口中由该M文件创建MEX文件: • >> mcc -m -g Ex0802 %创建Ex0802.exe文件
8.2 低级文件输入输出8.2.1打开和关闭文件 • 1. 打开文件 • fid = fopen(filename,permission) %以指定格式打开文件 • 说明:fid为返回的文件指针(File Identifier),通常是一个非负的整数,如果返回-1,则表示无法打开文件;message用来显示打开文件的信息,如果无法打开,则显示错误信息; permission为指定文件的打开模式,有以下几种模式: • 'r':只读文件 • 'r+':读写文件 • 'w':删除已存在文件内容或建立新文件,并只写文件 • 'w+':删除已存在文件内容或建立新文件,并读写文件 • 'a':以只写方式建立并打开一个新文件或打开一个已存在的文件,只能在文件末尾添加内容 • 'a+':以读写方式建立并打开一个新文件或打开一个已存在的文件,在文件末尾添加内容
2. 关闭文件 • 打开文件进行读写操作后,应立即关闭文件,删除文件指针,以免打开文件过多,造成混乱和浪费。 • status=fclose(fid) %关闭文件指针所指的文件 • status=fclose('all') %关闭所有打开的文件 • 说明:status为关闭文件指针所指文件的状态,如果成功则返回0,如果失败则返回-1;fid为所打开的文件指针。
8.2.2读写格式化文件 • 格式化文件的读写使用命令fscanf、fprintf和fgetl、fgets,格式化数据的行分隔符在写入文件时自动添加,在从文件读出时自动删除。 • [a,count]=fscanf(fid,format,size) %读取格式化数据 • count=fprintf(fid,format,a,…) %写入格式化数据 • tline=fgetl(fid)%读取文件的下一行,不包括换行符 • tline=fgets(fid) %读取文件的下一行,包括换行符 • tline=fgets(fid,nchar) %限制读取文件字符个数
8.2.3读写二进制数据 • 二进制数据格式不删除或添加分隔符,使用fread和fwrite命令可以实现对二进制数据的读写。 • 1.读数据 • fread命令为读二进制数据。 • [a,count]=fread(fid,size,precision,skip) %读取二进制数据 • 2. 写数据 • fwrite命令为写二进制数据。 • count=fwrite(fid,a,precision,skip) • %写二进制数据
8.2.4文件定位 • 1. fseek命令 • fseek命令用来移动文件位置指针。 • status=fseek(fid,offset,origin) %移动文件位置指针 • 2. ftell命令 • ftell命令是用来获取文件位置指针的当前位置。 • pos=ftell(fid) %获取当前指针位置 • 3. frewind命令 • frewind命令用来将文件位置指针移到文件的开头。 • frewind(fid) • 4. feof命令 • feof命令用来测试位置指针是否在文件结束位置,如果是则返回1,否则返回0。 • feof(fid)
8.3 图形文件转储 • 图形文件的转储通常在MATLAB的图形窗口中,选择菜单“File”→“Export”命令,则在出现的“Export”对话框中,在“保存类型”栏选择需要转储的图形文件类型 。
8.4 Notebook8.4.1 Notebook安装 • 以MATLAB7.3版为例,Notebook的安装独立于MATLAB的安装过程,在安装了Word和MATLAB之后再安装Notebook。 • (1) 启动MATLAB,出现MATLAB命令窗口。 • (2) 在命令窗口中运行“notebook -setup”命令
8.4.2 Notebook启动 • 创建M-book文件 • 创建M-book文件有两种方法:从Word中启动和从MATLAB命令窗口启动。 • 2. M-book的界面图M-book的界面比普通的Word • 多一个“Notebook”菜单。
8.4.3 Notebook使用 • 在Notebook中,凡参与Word和MATLAB之间信息交换的部分,就称为单元或单元组(Cells or Cell group)。 • Notebook定义了几种格式来表示MATLAB的函数和命令,包括AutoInit、Calc、Error、Input、Nograph、Output以及Word默认的格式。
输入单元 • 凡是在MATLAB中合法的命令、注释都可以定义为输入单元 。 • (1) 只创建不运行输入单元 • 输入MATLAB命令然后用光标选中,按组合键“Alt-D”,或选择菜单“Notebook”→“Define Input Cell”,则所选中的文本形式命令就变成了输入单元。 • 2. 自动初始化单元 • 3. 单元组 • 4. 输出单元 • 5. 计算区
8.4.4 Notebook中MATLAB使用 • 【例8.11】绘制三维peaks函数图形。 • 选择菜单“Notebook”→“Notebook Options…”,将“Width”和“Height”都设置为2,输入如下文本,并用“Evaluate M-book”命令运行该文本。 • 绘制peaks函数的三维曲面图 • [x,y,z]=peaks; • mesh(x,y,z)