Matlab 定义函数的简单方法

一、m文件定义函数(m-函数)

  1. Matlab函数的基本结构
function[输出形参表: output1, ...,outptn] = 函数名(输入形参表: input1, ... , inputn)

注释说明部分
函数体代码部分

end

说明:function:表示编写的是一个函数;

输出形参表,即函数的返回值,各返回值间用逗号隔开;(不需要像C语言那样,通过return到返回值来赋值,outp_args相应的参数可以直接使用)

函数名:需要和m文件名保持一致

输入形参列表:即函数的各输入参数,用逗号隔开;

函数体:完成函数的具体功能,是根据具体需要编写的;通过使用“函数的输入参数”、“自定义变量”、“流程控制结构”来实现;

end:表示此函数结束,也可省略。

  1. 函数调用

定义完的函数保存为同函数名的m文件,放置在Matlab的当前路径之下(或修改当前路径为m-函数文件所在路径),然后就和使用Matlab自带的函数一样,直接在命令窗口或程序代码中使用该函数就是调用它了。调用函数时,只需要知道函数是完成什么功能的,以及它的输入参数、输出参数。

函数调用的一般格式为:

[输出实参表]=函数名(输入实参表)

注1:函数中遇return语句时,将退出函数体,此函数调用结束;

注2:函数体里面也可以定义一个或几个函数,称为子函数;注意:子函数只能存在于主函数体内,不独立存在;子函数在主函数体内的位置可以任意,不影响使用;子函数只能被主函数以及其他位于同一主函数体下的子函数调用,但子函数“句柄”例外;

注3:在调用函数时,Matlab用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理。

例1 函数(子函数)定义与调用示例,求向量的最大、最小值。

编写m-函数文件:max_min_values.m


function [max,min] = max_min_values(X)

%输入参数X为数值向量,返回其最大值和最小值

max=mysubfun1(X);

min=mysubfun2(X);

function r=mysubfun1(X) %子函数1

x1=sort(X, 'descend');

r=x1(1);

end

function r=mysubfun2(X)  %子函数2

x1=sort(X);

r=x1(1);

end

end
调用函数(命令窗口):

A = [34,56,23,11,2,39];

[m,n]=max_min_values(A)

运行结果: m = 56
          n = 2

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

例:自定义求和函数

需要自定义一个 my_sum.m 的文件来存放函数

function[s]=my_sum(n)
s=0;
for 
    i=1:n
    s=s+i;
end

注意:函数名(my_sum)必须与文件名(my_sum.m)一致
调用函数的时候函数文件放在当前工作目录下面。

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

例:求最大值函数

function son_function( )        %主函数必须位于最上方
%子函数举例
max1=find_max(1,2,3)
max2=find_max(7,3,9)

function max=find_max(a,b,c)    %子函数
if (a>=b)&(a>=c)
    max=a;
elseif (b>=a)&(b>=c)
    max=b;
else
    max=c;
end

注意:一个m文件可以写多个function,但是只有第一个能够在其他文件中调用,其余的函数只能在该文件中调用。

函数名要与主函数名一致

  • 14
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值