matlab自定义函数的五种表示,前2种重点

1.命令文件/函数文件+函数文件:多个M文件

2.函数文件+子函数:一个M文件

3. inline:无需M文件

4.符号表达式+subs方式:无需M文件

5.字符串+subs方式:无需M文件


第一种:命令文件/函数文件+函数文件

%命令/函数文件:myfile1.m

clear

for t=1:10

y=mylfg(t);

fprintf(\'%4d^(1/3) = %6.4f\n\',t,y);

end

%函数文件:mylfg.m

function y = mylfg(x)

y=x^(1/3);

NOTE:

1.函数调用时注意实参与形参的匹配

2.函数必须单独写在一个文件!

不你能与命令文件写在同一个文件中。

3.函数名最好与文件名一致。


第二种方式:函数文件+子函数

%函数文件:funtry2.m

fumction [] = funtry2()

for t= 1:10

y=lfg2(t);

fprintf(\'%4d^(1/3) %6.4f\n\',t,y);

end

%%子函数

function y = lfg2(x)

y =x^(1/3);

NOTE:

函数文件中可以定义一个或多个子函数,此时我们称该函数为主函数,子函数只能被主函数或同一个函数文件中的其他函数调用。

疑问:方式一中的函数文件与方式二种的主函数如何区别呢????是一个概念吗???


方式三:inline+命令/函数文件

1.inline命令可以用来定义一个内联函数

f = inline(\'函数表达式\',‘变量1’,‘变量2’,....)

2.调用方式:y=f(数值列表)

带入的数值列表顺序应与定义时的变量名顺序一致

eg: f = inline(\'x^2+y\',\'x\',\'y\');

z = f(2,3);

z =7

优点:运算速度快

缺点:1.占用内存多2.只能对数值带入不能进行求导等符号运算


方式四:syms + subs

syms定义一个符号表达式,用subs命令调用

syms f x %定义符号

f =1/(1+x^2); %定义符号表达式

subs(f,\'x\',代替x的数值或符号)

优点:可以用符号替换

缺点:运算速度低


方式五:字符串 + subs

直接定义一个字符串,用subs命令完成调用

f= \' 1/(1+x^2)\'

z=subs(f,\'x\',2)

g = subs(f,\'x\',\'y^2\')

优点:占用内存少,格式方便自由