matlab 如何建立、调用自定义函数?

作者&投稿:阮姜 (若有异议请与网页底部的电邮联系)
MATLAB如何调用自定义函数?~

之所以会出现这个错误是因为你的自定义函数中x还没有指定,看你代码的意思,你是要定义x = count吧,可以在自定义函数的最后加上这句。这样就没有问题了

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的数值运算内核的,所以它的运算速度较快,程序效率更高。 缺点是该方法只能对数值进行代入,但是不支持符号代入,且对定义后的函数不能进行求导等符号运算。

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

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

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

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

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



建立一个函数的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。希望对你有帮助!

新建一个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()这个函数。

不知道我说清楚了没。。。。我没有调试过,希望不会报错 -。-

新建一个M文件,在Editor编辑器中输入函数function [X,Y]=pll(X1,Y1,X2,Y2)以及其欲实现的功能,保存,然后在另外一个M文件中就可以调用这个函数,在命令窗口中不能实现调用。
我初学,我就是这样用的,并且那个自定义了函数的M文件与调用此函数的M文件须在同一存储路径下

我也是这个问题,但是这个是因为你在这里只是定义一个function,没有给里面的参数定义所以会出现错误,你在别的M文件中直接调用这个函数,参数匹配就没有问题。我的已经调好了,你加油!


沾化县19571171539: matlab 如何建立、调用自定义函数? -
伯牙吾台俘壮腰: 新建一个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()这个函数.不知道我说清楚了没....我没有调试过,希望不会报错 -.-

沾化县19571171539: matlab如何建立、调用自定义函数? -
伯牙吾台俘壮腰: 建立函数 首先需要开启一个 new script 里面输入(以下为范例) 右侧括号内2个数值即所给数字 之后存盘会形成m file function y = x(a, b)n=a+b if length(a)==1 && length(b)==1; y=n^2; else y=n.^2; end end 呼叫函数 开启一个新的script 在里面输入 y = x(a, b) 此时, a b之值需要在此script 给定才能运行 呼叫的前提是两个档案在同一活页夹内

沾化县19571171539: matlab 怎么调用自定义函数 -
伯牙吾台俘壮腰: 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; 3、Inline:无需M文件,直接定义; 4、匿名函数; 5、Syms+subs: 无需M文件,直接定义; 6、字符串+...

沾化县19571171539: matlab怎么建立自定义函数 -
伯牙吾台俘壮腰:function 返回值=函数名(输入参数)函数体例如求a+b的函数 function c=sumcalculate(a,b)c=a+b就哦了 调用的时候直接sumcalculate(x,y)就行

沾化县19571171539: Matlab中函数怎样调用自定义函数 -
伯牙吾台俘壮腰: 先保存这个函数 比如 function y=min(a,s),然后按照其格式调用.在命令行中写 min(a,s)回车即可完成调用,一定要 写参数a,s.

沾化县19571171539: MATLAB如何调用自定义函数? -
伯牙吾台俘壮腰: 之所以会出现这个错误是因为你的自定义函数中x还没有指定,看你代码的意思,你是要定义x = count吧,可以在自定义函数的最后加上这句.这样就没有问题了

沾化县19571171539: matlab中怎样创建和调用m文件 -
伯牙吾台俘壮腰: 原发布者:st20571161.建立M文件的必要性:对于常用的或很长的程序,如果每次都从头输入,则非常费时间,也容易出错.将这些程序做成M文件就方便多了--只要输入自定义的命令,就可以方便的调用,编程的效率大大提高!2.如何建立M文...

沾化县19571171539: matlab自定义函数的几种方法 -
伯牙吾台俘壮腰: matlab自定义函数的有三种方法. 方法一:inline()匿名函数,例如 f= inline('sin(2*pi*x + theta)', 'x', 'theta') 方法二:@()句柄函数,例如 f=@( theta,x)sin(2*pi*x + theta) 方法三:function 文件,例如 function f = myfun(theta,x) f=sin(2*pi*x + theta);

沾化县19571171539: matlab自定义函数怎么用 -
伯牙吾台俘壮腰: >> [a1,a2,a3]=fun1(2,3) b1=2 b2=3 a1 =5 a2 =6 a3 =0.6667 %%%%%1楼的方法可以啊,你的函数的输出是三个结果,所以你调用的时候要和函数的形式保持一致,如果你只写了a1=fun1(2,3)输出的只是a1; %%%%%%%%%%%%%%%% ...

沾化县19571171539: 如何正确地在matlab里创建自定义函数,求高手指教~ -
伯牙吾台俘壮腰: f=sym('(1+t/2)*(Heaviside(t+2)-Heaviside(t-2)')少了个括号,应该是发f=(1+t/2)*(Heaviside(t+2)-Heaviside(t-2));解决办法 clc; Heaviside=@(t) t>=0; syms t f=sym('(1+t/2)*(Heaviside(t+2)-Heaviside(t-2))') subplot(2,3,1),ezplot(f,[-3,3]) y1=subs(f,t,t+2)...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网