第3章__MATLAB程序设计20140822讲述.ppt
文本预览下载声明
3.8 类和对象 类的概念是结构体的拓展,在类中,不但可以包含变量成员,还可以包含与这些变量相关联的函数或运算。对象是类的一个具体实例。 类和对象的概念是面向对象程序设计(Object-oriented Programming)的基础。采用面向对象技术可以把复杂的操作过程加以隐藏,而外部呈现为人们所习惯的处理形式。 例3.19 建立一个整数类integer,该类含有一个数据成员n,代表一个3 位整数。还具有显示整数各位数字之和、各位数字平方和、各位数字立方和等功能。 3.9 文件操作(Low-Level File I/O Functions) 3.8.1 文件的打开与关闭 ? 1. 打开文件 fopen函数的调用格式为: fid= fopen(‘文件名’,‘使用文件方式’) 2. 关闭文件 调用格式为: sta=fclose(fid) filename = input(‘Open file:’,’s’); [fid,message] = fopen (filename,’r’); if fid==-1 disp ( message); end 3.9.2 二进制文件读写操作 1. 读二进制文件 fread 函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为: [A,count]=fread(fid,size, precision) 例: [Fid,message] = fopen(‘matrix.dat’,’r’); If Fid==-1 disp (message) end; A = fread(Fid,100) 2. 写二进制文件 fwrite 函数按照指定的数据精度将矩阵中的元素写入到文件中,并返回存入数据的个数。其调用格式为: count=fwrite (Fid, A, precision) 例: File = fopen(‘magic.bina’,’w’) Count = fwrite(File,magic(4),’int32’) Status = fclose(File) 3.8.3 文本文件读写操作 1. 读文本文件 fscanf 函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为: [A,COUNT]= fscanf (Fid, format, size) 2. 写文本文件 fprintf 函数可以将数据按指定格式写入到文本文件中。其调用格式为: COUNT= fprintf(Fid, format, A) 例3.20 从键盘输入5名学生的姓名和成绩,先建立一个数据文件,然后读出数据文件的内容,并按成绩从低到高的顺序在屏幕上输出学生信息。 3.8.4 数据文件定位 fseek函数用于定位文件位置指针,其调用格式为: status = fseek(Fid, offset, origin) origin为给定的初始位置,为‘cof’,’bof’,’eof’之一。 ‘cof’:表示文件中的当前位置 ‘bof’:表示文件的开始位置 ‘eof’:表示文件的结束位置 ftell函数返回文件指针的当前位置,其调用格式为: position = ftell (Fid) 3.3.3 try语句 (错误控制语句) 语句格式为: try 语句组1 catch 语句组2 end try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。这种试探性执行语句是其他高级语言所没有的。 例3.9 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。 A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因 3.4 循环结构 3.4.1 for语句 语句格式为: for 循环变量=初值 : 增量 : 终值 循环体语句 end 例3.10 已知y的表达式,当n=100时,求y的值。 y=0; n=100; for i=1:n y=y+1/i^2; end y 在实际MATLAB编程中,为提高程序的执行速度,常用向量运算来代替循环操作: n=100; i=
显示全部