365bet取款要多久-365bet体育365bet官网-365电子游戏

Matlab函数调用(简明教程)

Matlab函数调用(简明教程)

1、文件结构

|–根目录

|–main.m

|–CallbackFunc.m

|–callback

|–CallbackFunc2.m

2、程序

1、同一文件夹下函数调用

创建CallbackFunc.m,用于存放子函数

function Funcollect = CallbackFunc

Funcollect.myfun = @myfun;

Funcollect.func = @func;

end

function f = myfun(a,x)

f = a + a*exp(-0.02*a*x);

end

function y = func(x)

if x < 0

y = abs(x);

else

y = cos(x) + x;

end

end

创建main.m,作为主函数

其中,main.m和CallbackFunc.m在同一文件夹下(后面会讲到不在同一文件夹下的调用)

Funcollect = CallbackFunc;

y = Funcollect.func(-2);

disp(y)

运行结果:

>> main

2

2、不同文件夹下函数调用

上面例子介绍了在同一文件夹下的.m相互调用。但是在实际项目中,很多时候我们为了将程序模块化,通常将不同功能的函数放到固定的文件夹内。那么我们怎么调用不同文件夹内的文件,其实很简单,请往下看:

在程序前添加代码:addpath(genpath(pwd));

将当前文件夹下的所有文件夹都包括进调用函数的目录 ...

就是:addpath, genpath两个函数

添加 myfiles 和它的子目录到搜索路径中:

addpath(genpath('c:/matlab/myfiles'))

这里我把添加路径单独摘出方便大家复制

addpath(genpath('c:/matlab/myfiles'))

OK,为了方便大家理解,我们下面用实例说明:

首先在callback文件夹下创建CallbackFunc2.m(是CallbackFunc2.m哦!)

function Funcollect = CallbackFunc2

Funcollect.myfun = @myfun;

Funcollect.func = @func;

end

function f = myfun(a,x)

f = a + a*exp(-0.02*a*x);

end

function y = func(x)

if x < 0

y = abs(x);

else

y = cos(x) + x;

end

end

返回到上一级文件夹中的main.m,更改程序为:

addpath(genpath('E:\网上下载\Matlab_Lesson\CaiNiaojc_Lesson\callback'))

Funcollect = CallbackFunc2;

y = Funcollect.func(-2); %(是`CallbackFunc2.m`哦!)

disp(y)

运行结果:

>> main

2