matlab怎么建立自定义函数
matlab中定义函数的方式有以下几种:
1、函数文件+调用函数文件:定义多个M文件。
% 调用函数文件:myfile.m
clear
clc
for x=1:10
y=mylfg(x);
end
%自定义函数文件: mylfg.m
function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致
Y=3*x+1;
注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。
2、函数文件+子函数:定义一个具有多个子函数的M文件。
%命令文件:funtry2.m
function []=funtry2()
for x=1:10
y=lfg2(x);
End
function y=lfg2(x)
Y= 3*x+1;
%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。
3、Inline内联函数:无需M文件,直接定义。
%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。
调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。
例如:
f=inline(‘3*x+1‘,’x’);
z=f(2)
Ans=7
注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。 缺点是该方法只能对数值进行代入,但是不支持符号代入,且对定义后的函数不能进行求导等符号运算。
1,在命令窗口中输入edit,弹出一个函数编辑框用于你自定义一个函数
2,函数的建立:格式为function空格f=myfun(x,y),这里f是你函数的输出,myfun是你这个函数的函数文件名(这个名字你可以自己随便订的),然后括号里边的就是你的输入。如这个函数:
function f=myfun(x1,x2)
f=x1*x2(这个是你的函数的功能,及表达式)你构造好这个函数后,点击save,保存,注意这里有一个地方需要特别注意,你保存的是一个M文件,我们在命令窗口里调用的都是M文件,所以如果你要调用你上边构造的那个函数,你最后让你这个M文件的名字跟你上边的函数文件名相同,即这里保存的 M文件名你应该取名为myfun,保存好,记住你保存的路径。
3,这一步就是你调用你上边构造的那个函数了.首先,你在你的MATLAB种把当前路径选择为你刚才保存的那个M文件的路径(如此你才可以调用你所构造的函数,不然读取不到,会报错) 调用格式为你保存的M文件的文件名。比如,你先在命令窗口中赋值x1,X2令x1=2,x2=4;然后输入函数文件名myfun,则输出结果为x1*x2=2*4=8即ans=8。希望对你有帮助!
在matlab中,建立自定义函数,可以参考如下示例:
% 函数文件fun.m
function y = fun(x)
y = x.^2;
% 主文件main.m
a = [3, 2, 5];
b = fun(x); % 调用之前自定义的函数fun,输出结果为[9, 4, 25]
如果需要自定义的函数输入变量可变,可以参考如下示例:
% 函数文件 examp.m
function fout = examp(a,b,c)
if nargin == 1 % 如果输入变量只有一个
fout = a;
elseif nargin == 2 % 如果输入变量只有2个
fout = a + b;
elseif nargin == 3 % 如果输入变量有3个
fout = (a*b*c) / 2;
end
% 主文件main.m
b = examp(4); % 调用之前自定义的函数examp,输出结果为4
c = examp(4, 6); % 调用之前自定义的函数examp,输出结果为10
d = examp(4, 5, 6); % 调用之前自定义的函数examp,输出结果为60
接着在matlab命令窗口中输入 pll(1,2,3,4)看看会得到什么? 也可以另外创建一个m文件,在这里调用pll()这个函数。