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个回答  2018-05-17

函数文件需要在编辑器中提前编好程序。点击上面的黄色“+”号,有一个function,点开就可以编写函数。

我的是中文版,和你的对照着可以

函数文件不可以直接运行,必须保存为m文件后,在你的主程序内调用,平常用的很多函数都是这么用的,比如说求余函数 rem(x,y) ,如果没有x,y的实际值是没有函数的实际意义的。

附上我以前的一些简单的自定义函数吧。

记得一定要保存m文件在调用

第2个回答  2010-05-29
建立一个函数的M文件步骤:
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。希望对你有帮助!
第3个回答  推荐于2018-05-07

在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

本回答被网友采纳
第4个回答  2015-06-08
新建一个m文件 在m文件里面第一行输入function [X,Y]=pll(X1,Y1,X2,Y2),这里x1 x2 y1 y2是你函数的输入值, x y是输出值,接着定义你要实现的功能,比如:x = x1 + x2; y = y1 + y2; 接着保存这个m文件,注意!! 这个m文件的名字必须是定义的函数的名字,即保存为pll.m 否则会出错。

接着在matlab命令窗口中输入 pll(1,2,3,4)看看会得到什么? 也可以另外创建一个m文件,在这里调用pll()这个函数。
相似回答