Matlab的子函数和嵌套函数

主函数:
(1)一个.m文件只有一个主函数,且正常情况下主函数函数名应该与文件名相同。
test.m文件:

function [m,n] = test(x,y)
%test function
end

子函数:
(1)如果有的函数很短就几行代码,又不想多创建一个.m文件,且只针对某些函数使用。可以允许在一个.m文件中创建多个子函数。
(2)子函数只能在定义的.m文件内使用。主函数可以调用子函数、嵌套函数可以调用子函数、子函数之间可以相互调用。子函数与子函数、子函数与主函数之间数据交流只能通过传参。
(3)子函数不能直接改变主函数或其他子函数的数据,只能通过传参和返回值。
格式如下:

function [m,n] = test(x,y)  %主函数
%test function
m = m_add(x,y)    %调用子函数1
end
function k = m_add(i,j)   %子函数1
    k =i +j;
    t = m_sub(k,i)  %调用子函数2
end
function b = m_sub(s,t)	%子函数2
    b = s-t;
end

嵌套函数:
(1)子函数嵌套函数的区别仅仅在于主函数的变量对其是否可见。主函数数据对嵌套函数可见(类似全局变量)。严格来讲是嵌套函数可以直接操作主函数在调用嵌套函数之前声明的变量
(2)嵌套函数之间的私有(内部)数据不互通,当然嵌套函数和子函数数据也不通。
(3)嵌套函数也能调用子函数,反之子函数不能调用嵌套函数。
格式如下:

function k = test(x,y)   %主函数
    a = 5;
    b = my_add(x,y);
    function t = my_add(i,j)  %嵌套函数
        t = i+j+a;
        d = my_sub(t,i);
    end
end
function s = my_sub(m,n)  %子函数
    s = m - n;
end

谢谢观看,如有错误,欢迎指点!

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值