数学实验
Matlab 自定义函数
自定义函数的五种方式
Matlab 自定义函数的五种方式
命令文件/函数文件+ 函数文件 - 多个M 文件
函数文件 + 子函数 - 一个 M 文件
inline - 无需 M 文件
syms + subs 方式 - 无需 M 文件
字符串 + subs 方式 - 无需 M 文件
自定义函数方式(一)
方式(1):命令文件/函数文件 + 函数文件
%命令/函数文件: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);
函数名与文件名必须一致!
函数必须单独写一个文件!
不能与命令文件写在同一个文件中!
自定义函数方式(二)
方式(2):函数文件 + 子函数
%函数文件:funtry2.m
function []=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);
函数文件中可以定义一个或多个子函数,此时我们称该函
数为主函数,子函数只能被主函数或同一个函数文件中的
其它子函数调用!
自定义函数方式(三)
方式(3):inline + 命令/函数文件
inline 命令可以用来定义一个内联函数
f=inline('函数表达式','变量1','变量2',...)
调用方式:
y=f(数值列表)
代入的数值列表顺序应与定义时的变量名顺序一致
例:
自定义函数方式(三)
这种函数定义方式是将 f 作为一个内部函数调用。其特
点是:调用方式最接近于我们平时对函数的定义,使程序
更具可读性。同时由于它是基于 Matlab 的数值计算内核
的,所以它的运算速度较快,程序更有效率。
这种定义方式的缺点:
定义一个内联函数用去的内存空间比相同条件下其他
的方法要大得多。
该方法只能对数值进行代入,不支持符号代入,并且
对于定义后的函数不能进行求导等符号运算。
自定义函数方式(三)
自定义函数方式(三)
%函数文件:function []=funtry3()
lfg=inline('x.^(1/3)');
%表达式两端的单引号不可缺少
fid=fopen('myfile3.txt','w');
for t=1:50;
y=lfg(t);
fprintf(fid,'%4d^(1/3) = %6.4f\n',t,y);
end
fclose(fid);
ezplot(lfg,[0,50])
diff(lfg,'x')
X