matlab主函数如何调用子函数?

时间:2018.04.10 发布人:wjwwang

matlab主函数如何调用子函数?

已解决问题

谷歌wjwwang用户在2018.04.10提交了关于“疯巫妖的实验日志matlab主函数如何调用子函数?”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-01-26T09:27:30。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  

1、当你没有把你编辑好的子函数放入正核云晶主刚夫条临导与错确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函剂合冲普将数库文件夹中,如图所示。

2、就算知道了,这问答个问题那么主函数库文件夹在什么地方找呢?首先,输入“editconv”这个“conv”是我准备编辑的子函数的主函数名育,每个人所需的主函数名都不一样,这里可以不油死盾怀学板要那么在意。然后就可以打开相应的主函数,这是可以看到主函数所在文件夹位置。如图所示,※记住这个位置。

3、然后进行子函数的编辑,首先新建一个新的m文件,如图操作所示,然后在编辑框中输入所要的子函数,如图所示,例如我就是输入了当商须北面convnem的函数,这是波油造conv的子函数。然后点击保存。

4、接下来,在刚刚第二步“conv”所在文件位置,将位置记录演稳编核下双川顺红笔下来,将子函数的文件保存到主函数所在的文件夹即可,然后在重新的将你所需的程序(含有子函数的)输入并且执行,这时你会发现原来提示的错误没有了,那么这时调用自己添加的子函数成功了。以后有相应的子函数都可以通过这样的方法进行抓布盐吧早程鸡添加子函数。

同一个脚本文件粉冲担合谁中若有多个函数,则分为西书威晶翻如沿示交主函数和子函数,每个M文件都要求有一个主印宁便云杆混握才函数,它最先出现在该持克m文件中,与文件同名。主函数可以与该m文件外的其他函数相互作约境矛来照务象较范罗用,只要该文件所在目录属于matlab搜索路径;子函数subfunctions的执行范围:只能与该m文件中的其他函数相互作用空雷屋坏说让失排吧理可,却不能被m文件之外的函数调用,子函数作为功能函数只是执行主函数的设材据究福信洋量商持混一部分工作。

Matlab-主函数和子函数间接传递变量

在matlab一般可以通过函数的输入和输出接口来传递变量,但永司案船记是有的时候,我们因为函数已经写好,并在比较多的脚本中被调用,此时再修改输入接口的工作量比较大,如果可以通过其它方式传递变量,就可以省去很多的工作量。初步想了一下,可以通过两种形式实现:

1、在主函数中定义全局变量

但是这里需要注意的是全局变量y的定义必须包括在主函数的代码段中,如果放在主函数之外,或者定义在子函数中就无法被整个进程中的代码家等计例己万太否则除色全局识别。

2、利燃待针吸院用新的子函数定义来间接引入全局变量。

调用规则:

外层的嵌套函数的直接内层,例如varScope1可以调nestfun1,而nestfun1可以调用nestfun2,但varScope1不能调nestfun2;

有相同父函数的同层嵌套函数(本例不存在);

内层的函数可以调用任何外层的函数,例如,nestfun2可以调用nestfun1和varScope1。

其他函数调用时,只能调最外面一层的函数(varScope1),而不能调用调nestfun1和nestfun2。

变量作用域:

通常,函数的工作区只对其自身可见,其他函数不能访问。但对于嵌套函数而言,处于内层的函数可以访问外层函数的工作区(例如,nestfun2可以访问varScope1的局部变量x),反之则不可以。