1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件
例:自定义求和函数
需要自定义一个 my_sum.m 的文件来存放函数
function[s]=my_sum(n)
s=0;
for i=1:n
s=s+i;
end
注意:函数名(my_sum)必须与文件名(my_sum.m)一致
调用函数的时候函数文件放在当前工作目录下面。
2、函数文件+子函数:定义一个具有多个子函数的M文件
例:求最大值函数
function son_function( ) %主函数必须位于最上方
%子函数举例
max1=find_max(1,2,3)
max2=find_max(7,3,9)
function max=find_max(a,b,c) %子函数
if (a>=b)&(a>=c)
max=a;
elseif (b>=a)&(b>=c)
max=b;
else
max=c;
end
注意:一个m文件可以写多个function,但是只有第一个能够在其他文件中调用,其余的函数只能在该文件中调用。
函数名要与主函数名一致
3、Inline:无需M文件,直接定义
%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。
调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。
例:
f=inline('x^2+y','x','y');
z=f(2,3)
例:
inline函数调用格式如下所示:
>> fname = inline('sum(1:n)','n')
此时会输出:
fname =
Inline function:
fname(n) = sum(1:n)
首先构造函数句柄,随后就可利用feval函数计算:
>> calsum = feval(fname,100)
此时就会输出:
calsum =
5050
4、匿名函数
使用matlab函数句柄操作符@,可以定义指向matlab内置函数和用户自定义函数的函数句柄,函数句柄也可以像函数一样的使用。
例:
x=-pi:0.1:pi;
fh={@cos,@sin};
plot(fh{2}(x))
fh=
@cos @sin
5、syms+subs:无需M文件,直接定义
用syms定义一个符号表达式,用subs调用:
syms f x %定义符号
f=1/(1+x^2); %定义符号表达式
subs(f, ‘x’, 代替x的数值或符号)
注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。
这种函数定义方法的特点是,可以用符号进行替换。
Syms f x
f=1/(1+x^2);
subs(f, ‘x’,’y^2’)
ans=
1/(1+(y^2)^2)
注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。
6、字符串+subs:无需M文件,直接定义
直接定义一个字符串,用subs命令调用。例如:
f=’1/(1+x^2)’ %定义字符串
z=subs(f,’x’,2)
g=subs(f,’x’,’y^2’)
注:优点是,占用内存最少,定义格式方面自由。
缺点是,无法对字符进行符号转化。
当所要替代的符号在调用前都已经有了数值定义,则可以直接调用:subs(f).例如:
f=’x^2*y’;
x=2;y=3;
subs(f)
ans=12
7、直接通过@符号定义。
例:
>> f=@(x,y)(x.^2-sin(y))
f =
@(x,y)(x.^2-sin(y))
>> f(2,3)
ans =
3.8589
今天的文章matlab7.0定义函数_判断函数是否连续的方法[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/75498.html