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 ',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 ',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')

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

原文地址:https://www.cnblogs.com/chip/p/4784094.html