matlab函数定义格式

转载 2012年03月30日 21:24:15
http://blog.sina.com.cn/s/blog_4936c31d01014qwo.html
总结matlab中函数定义的一些内容:

1, 函数定义格式
在matlab中应该做成M文件,文件名要和你文件里的function后面的函数名一致 
在File新建一个M-file
在M-file里编辑函数
    格式为:
            function [输出实参表]=函数名(输入实参数)
              注释部分
 
             函数体语句
 
             return语句(可以有可以没有)
 如果是文件中的子函数,则可以任意取名,也可以在同一个文件中定义多个子函数
 
例:
function [max,min]=mymainfun(x)
  %主函数
n=length(x);
      max=mysubfun1(x,n); 
    min=mysubfun2(x);
  
function r=mysubfun1(x,n)
   %子函数1 
   x1=sort(x);
r=x1(n);
    
function r=mysubfun2(x)
  %子函数2 
  x1=sort(x);
   r=x1(1);



Matlab自定义函数的五种方法

 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件;

  2、函数文件+子函数:定义一个具有多个自定义函数的M文件;

 3Inline:无需M文件,直接定义;

 4Syms+subs: 无需M文件,直接定义;

 5、字符串+subs:无需M文件,直接定义.

 

1、函数文件+调用函数文件:定义多个M文件:

% 调用函数文件:myfile.m

clear

clc

for t=1:10

y=mylfg(t);

fprintf(‘M^(1/3)=%6.4f\n’,t,y);

end

%自定义函数文件: mylfg.m

function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致

Y=x^(1/3);

注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。

2、函数文件+子函数:定义一个具有多个子函数的M文件

%命令文件:funtry2.m

function []=funtry2()

for t=1:10

y=lfg2(t)

fprintf(‘M^(1/3)=%6.4f\n’);

End

function y=lfg2(x)

Y= x^(1/3);

%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。

3Inline:无需M文件,直接定义;

%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)

调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。

例如:

f=inline(‘x^2+y’,’x’,’y’);

z=f(2,3)

Ans=7

注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算

例:

Clear

Clc

f=’x^2’;

Syms x g;

g=x^2;

h=inline(‘x^2’,’x’);

4Syms+subs: 无需M文件,直接定义;

syms定义一个符号表达式,用subs调用:

Syms f x %定义符号

f=1/(1+x^2); %定义符号表达式

subs(f, ‘x’, 代替x的数值或符号)

注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。

这种函数定义方法的特点是,可以用符号进行替换

Syms f x

f=1/(1+x^2);

subs(f, ‘x’,’y^2’)

ans=

1/(1+(y^2)^2)

注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。

5、字符串+subs:无需M文件,直接定义.

直接定义一个字符串,用subs命令调用。例如:

f=’1/(1+x^2)’ %定义字符串

z=subs(f,’x’,2)

g=subs(f,’x’,’y^2’)

注:优点是,占用内存最少,定义格式方面自由。

缺点是,无法对字符进行符号转化。

当所要替代的符号在调用前都已经有了数值定义,则可以直接调用subs(f).例如:

f=’x^2*y’;

x=2;y=3;

subs(f)

ans=12


Matlab自定义函数的几种方法

1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; 3、Inline:无需M文件,直接定义; 4、匿名函数; 5、Sym...
  • Jack_PengPeng
  • Jack_PengPeng
  • 2015年08月28日 18:50
  • 16937

matlab如何在文中定义函数

matlab如何在文中定义函数 通常我们多是将函数单独在编写在单个的m文件中,再于主程序中调用。但是,有时候觉得程序太小,直接在程序末尾编写函数,又会收到“此上下文中不允许函数定义”的错误提示。那...
  • lusongno1
  • lusongno1
  • 2017年01月04日 14:12
  • 3680

Matlab中如何定义函数

1.在m文件中,function y=f(x) %函数的声明 y=x^2就是建立了一个y=x2y=x^2的函数,f是函数的名称,m文件的名称必须是f.m. 如果返回值不止一个,则可以: fun...
  • Katherine_S
  • Katherine_S
  • 2016年12月15日 21:51
  • 461

Matlab函数、子函数的定义方法

除了最常使用的m文件函数,matlab还可以通过内联函数和匿名函数自定义函数。1. m文件函数以function关键字开头的m文件,并且通常函数名要与文件名相同。例如下面的内容保存为myfun2.m即...
  • yy13210520
  • yy13210520
  • 2011年04月08日 22:29
  • 20816

matlab函数定义详解

但凡经过编程熏陶的人,在学习其他一门陌生的编程语言时,往往会与已经学过的语言相比较。而语法的比较往往是情不自禁的。在matlab中,函数的概念或许没有其他语言那么广泛,特性没有那么丰富,但基本的功能都...
  • tiredoy
  • tiredoy
  • 2014年06月28日 16:23
  • 4247

matlab 函数调用和定义的问题

函数调用是使主程序简明清晰的重要工具,在很大程度上简化了程序的复杂程度,也方便于不同程序使用相同模块的调用。下面主要介绍: 函数文件+调用命令文件:需单独定义一个自定义函数的M文件 这种方法很简单...
  • li200503028
  • li200503028
  • 2013年10月30日 11:22
  • 3913

自定义功能函数-matlab

matlab中反复重写的函数
  • lilin2015
  • lilin2015
  • 2016年04月08日 17:26
  • 1120

Matlab函数编写格式

所谓 MATLAB 程序,大致分为两类:M 脚本文件 (M-Script) 和 M 函数 (M-function), 它们均是普通的 ASCII 码构成的文件。M 脚本文件中包含一族由 MATLAB ...
  • zyynjupt
  • zyynjupt
  • 2011年08月07日 19:12
  • 2005

Matlab入门教程--基本运算与函数(一)

Matlab入门教程--基本运算与函数(一)在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >>(5*2+1.3-0.8)*10/25 ans...
  • cspyb
  • cspyb
  • 2007年06月26日 19:19
  • 8682
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:matlab函数定义格式
举报原因:
原因补充:

(最多只允许输入30个字)