MATLAB其他编程基础
1、MATLAB 函数是一种特殊形式的M文件,它运行在独立的工作区。其基本形式如下:
Function [outarg1,outarg2,…] = fname(inarg1,inarg2,…)
%H1 comment line
%Other comment line
…
(executable code)
…
(return)
Function 语句标志着函数开始,左边是输出参数列表,右边的是输出参数列表。如果只有一个输出参数,则中括号可以省略。在函数体中使用nargin来获得实际调用函数的参数个数,用nargout获得函数输出的个数。
H1注释是对函数功能的总结,通过lookfor命令能搜索到并显示出来。
2、函数句柄
用变量表示函数。
语法为:X = @functionname,其中functionname是函数名,X是变量。X可以和functionname一样使用,X(),functionname()的含义一样。
匿名函数是函数句柄的一种高级用法,这样产生的函数句柄变量不指向特定的函数,而是一个函数表达式,其语法为:
X = @(param)expression
其中,param为输出参数列表,expression为函数表达式,X为变量名。例如:
Mysqr = @ (x)x.*x;
之后,执行mysqr(变量名),即可计算该变量的平方,mysqr的属性是函数句柄变量,而不是这个表达式,还有表达式不需要用单引号括起来。
3、 元包结构
MATLAB提供元包这种数据结构来支持将多种数据结构包含在一个数组中的功能。
Cell数据结构的每个单元都可以存储任何数据,使用cell数据结构之前,需要对其初始化,
a = cell(m,n)
元包中每个元包的访问都可以通过圆括号来访问,但如果需要访问元包的内容需要使用大括号。
MATLAB绘图
MATLAB可以表达出数据的二维,三维,甚至四维的图形。通过对图像的线型、立体、色彩、光线和视角等属性的控制,可以把数据的内在特征变现的淋漓尽致。
1、 figure
figure函数可生成一个新的绘图窗口,几乎可以显示所有的绘图、函数的运行结果,也可以生成多个绘图窗口显示多幅图片。
2、 subplot
subplot函数可将多幅图形显示在一个窗口,调用形式如下:
subplot(m,n,p)
其中m,n指定子窗口的排列方式为m*n的矩阵,p指定当前子窗口的位置,该位置用序号表示,序号的计算顺序为从左向右,从上到下,从1开始计数。P可以是一个单一数值,表示一个位置,也可以表示一维向量,表示一组位置,图形绘制语句通常紧跟在subplot语句之后,从而使得绘制的图形能够定位在期望的位置。
3、 plot
绘制二维曲线的基本函数:
Plot(x,y)
(1) 若X,Y均为实数向量,X = [x(i)],Y = [y(i)],则先绘出(x(i),y(i)),然后将点用线相连
(2) 若X,Y均为复数,则不考虑虚数部分。
在plot 后可以使用hold on语句来继续在同一张曲线图上添加另外的曲线,使用hold off结束。另外,可以在后面的参数中修改线型、宽度、颜色、标记类型、标记大小。
4、 mesh
mesh函数绘制三维曲面网格,mesh函数经常与meshgrid联用。
(1)Meshgrid函数使用:
[X,Y] = meshgrid(x,y)
其中,x,y分别为输入得1*m,1*n的一维向量。函数返回X,Y均为m*n的矩阵,X,Y分别是x,y方向上重复m,n的结果。
作用是通过输入向量来构建平面上x,y坐标。
(2)mesh(X,Y,Z),空间中的点为所画曲面的网线的交点,其中Z的数据结构必须是double类型。
MATLAB文件操作
MATLAB中有一种非常灵活的读取/写入文件的方法,叫做文件标识(file id)简写为fid 。
1、 fopen函数打开一个文件并返回这个文件的文件标识数。基本表示为:
fid = fopen (filename,permission)
[fid ,message] = fopen(filename,permission)
[fid ,message] = fopen(filename,permission,format)
其中,filename是打开文件的名字,permission用于指定打开文件的模式,format是一个参数字符串,用于指定文件中数据的数字格式。如果文件成功打开,fid是正整数,message是一个空字符;如果文件打开失败,fid是-1,message将解释为错误出现的字符串。
2、 fclose函数用于关闭文件
status = fclose(fid)
status = fclose(‘all’)
其中,fid 为文件标识,往往是fopen函数的返回值,status是操作结果,如果操作成功,status为0 ,失败为-1。status = fclose(‘all’),关闭所有的文件,如果成功为0,否则为-1。
3、 fwrite函数以自定义格式把二进制数据写入文件。
Count = fwrite (fid,array,precision)
Count = fwrite (fid,array,precision skip)
其中,fid 是用于fopen 打开的文件标识,array是写出变量的数组,count 是写入文件变量的数目,precision字符串用于指定输出数据的格式。
4、 fread函数用用户自定义的文件格式从文件中读取二进制数据。
[array,count] = fread (fid ,size,precision)
[array,count] = fread (fid , size ,precisin,skip )
fid 是用于fopen 打开的文件标识,array是写出变量的数组,count 是写入文件变量的数目,precision字符串用于指定输出数据的格式,size是文件中变量的数目。Size有三种:n,准确读取n个值,读取完之后array将包含有n个值得列向量;inf,读取文件中所有的值,执行完后,array将是包含文件中所有值的列向量;[n,m],从文件中读取n*m个值,array将是一个m*n的数组。