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.mCallbackFunc.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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值