Matlab中如何使函数作为参数传递

在此之前,先看看如何调用函数:

1.函数的调用

下面的例子将在call.m脚本中,调用写在fun.m中的函数fun(a,b,c);实现a,b,c三个数相加,然后返回;

这里写图片描述

%%fun.m
function [ output ] = fun(a,b,c )
output = a + b + c;
end

下面进行调用
这里写图片描述

% call.m
s = 0;
a = 1;
b = 2;
c = 3;
s = fun(a,b,c)

运行结果:

>> call

s =

     6

2.函数作为参数传递

下面例子将在call.m脚本中,调用函数funB(f,d),其中f是函数作为参数传递。

funA.m

这里写图片描述

funB.m

这里写图片描述

call.m

这里写图片描述

实现的功能也就是(a+b+c)*d=12

>> call

s =

    12

有人可能说,这还不如直接在funB中调用funA。当然,这儿只是为了解释如何将函数作为参数传递。

3.将函数funA作为参数传递的时候,如何设置funA中的默认值

将函数funA作为参数传递的时候,如何设置funA中的默认值? 什么意思? 就是说,原本funA有三个参数;但是我将funA作为参数f传递给其他函数funB(f,d)后,想默认funA的一些参数。还是看例子:

funA.m

这里写图片描述

funB.m

这里写图片描述

call.m

这里写图片描述

结果:

s = (1+1+2)*2=8

下面是只默认第二个参数:

funA.m 依旧不变

funB.m

这里写图片描述

call.m

这里写图片描述

结果为:s = (7+1+8)*2=32

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页