M文件的分类:
1.脚本文件,在运行的时候可以直接输入文件名称就可以运行。
2.函数文件(整个文件为一个编写的功能函数,在使用的时候可以直接调用)
function[x1,x2]=root(a,b,c,disc,real,imag);中是创建函数的语句该函数的名称为root,函数中所涉及的变量有a、b、c、disc、real、imag。
M文件的结构
1.函数的定义
首行有关键字function开头并在首行列出所有的输入和输出,输入在function之后一个的话直接输入,如果有多个输出的话就用方括号括起来。等号的右边是函数的名称,名称之后小括号内为所有涉及到的变量。
varargin and varargout是两个和输入输出变量关系比较大的特殊变量
nargin 和 nargout可以实现变量的检测
2.M文件的调试(略)
3.函数的类型
M函数、子函数、嵌套函数、私有函数、匿名函数、重载函数
(1)匿名函数举例
问题:minimum=fminbnd(f,-3,3);
plot(minimum,f(minimum),'d');
两句程序中,对于fminbnd函数的了解为0,应该是在最优化处理那一部分会有介绍,先放置一段时间
等待后续学习了解。
(2)子函数
(3)私有函数
(4)重载函数
(5)内联函数
常用格式fun=inline(expr,arg1,arg2....)fun为函数名,expr为表达式,arg为变量)
例题:(内联函数中只能出现函数和系数)
建立对应的内联函数,但是如何调用内敛函数,和普通的调用函数有什么相同和区别。
:如果传递一个可变系数的方程可以用如下程序:
编写程序的时候注意的地方num2str(a)把a转换成字符输出。这一部分需要用',num2str(....),'来分开才能正常运行。
eval函数
eval(expression……);求表达式的 值或者执行包含文本的字符串。
feval函数;[y1,y2,...]=feval(fhandle,x1,...,)其中fhandle只接受函数名,不接受表达式
具体区别见下程序:
该程序中对于小白有两处:
1.set(gcf,'units','normalized','position',[0.2,0.3,0.2,0.2]);调整坐标系的语句
百度一下网友的解释。
2.axis(‘square’);建立正方形的坐标系。
关于画图还有好多知识要学习。慢慢来!
函数的函数
以标量为变量的非线性函数,以函数名为自变量的函数(求零点、极点、最优化,常微分方程)
humps()函数——后期学习。
可变数量输入/输出
varargin:可变数量输入变量列表
varargout:可变数量输出变量列表
通过实例来了解其用法是最好的方法;
按照课本敲了近半个小时,完事提示n、d都是未定义的,这该如何是好。心累啊。函数定义的一般方式就是开头那样吧,但是不知道是不是书错了,表示狠心累!!!!