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‘)
优点:占用内存少,格式方便自由