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

如题所述

1、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函数库文件夹中,如图所示。

2、就算知道了,这个问题那么主函数库文件夹在什么地方找呢?首先,输入“edit conv”这个“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),反之则不可以。

温馨提示:内容为网友见解,仅供参考
无其他回答

Matlab怎样把一个函数调用另外一个函数
Matlab中一个函数调用另外一个函数的操作方法方法一:主函数调用子函数首先在Matlab中新建一个m文件函数Untitled2(),Untitled2()为主函数,然后在函数下方添加一个子函数count(i),主函数中调用子函数,代码如下:%主函数function[sum]=Untitled2()i=10;sum=count(i);end%子函数function[sum]=count(...

matlab主函数如何调用子函数?
1、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函数库文件夹中,如图所示。2、就算知道了,这个问题那么主函数库文件夹在什么地方找呢?首先,输入“edit conv”这个“conv”是我准备编辑的子...

matlab中,怎么样在主函数里调用子函数?是用什么命令
matlab可以在m文件函数中定义一个函数和多个子函数,但是需要注意的是子函数只能由同一m文件中的函数调用。如下面的例子:function [max,min]=mypfun(x) %主函数 n=length(x);max=mysubfun1(x,n);min=mysubfun2(x);function r=mysubfun1(x,n) %子函数1 x1=sort(x);r=x1(n);functio...

matlab怎么在主函数中调用子函数计算出来的值
1、创建子函数my_fun.m,保存在当前工作目录下:function [a,b,c,d] = my_fun(x,y)a = x+y;b = x-y;c = x*y;d = x\/y;end 2、主函数中可根据需要调用部分返回值,例如 >> x = 10;y = 2;>> a = my_fun(x,y) % 调用和 >> [a,b,c,d] = my_fun(x,y) %...

高手指点一下Matlab的主函数和子函数的关系,怎么建立子函数
回答:1.子函数(Subfunction)通常在一个MATLAB主函数的内部会调用一些其他的MATLAB函数,我们把被调用的函数称为该主函数的子函数,子函数可以是MATLAB自带的内部函数,也可以是自编的外部函数;可以是以Function打头的函数,也可以是内联函数和匿名函数。当子函数是自编函数时,子函数通常位于主函数函数体的后面,...

matlab中,怎么样在主函数里调用子函数?是用什么命令啊?
matlab可以在m文件函数中定义一个函数和多个子函数,但是需要注意的是子函数只能由同一m文件中的函数调用。如下面的例子:function [max,min]=mypfun(x) %主函数 n=length(x);max=mysubfun1(x,n);min=mysubfun2(x);function r=mysubfun1(x,n) %子函数1 x1=sort(x);r=x1(n);functio...

matlab 在主函数中调用一个输出数组子的函数 怎么调用?
一般子函数被调用,都有输入变量,再返回一个或多个变量。如:fuction [a b]=imag(m,n,p);这个函数的意思是,输入m n p三个参量,返回a b这两个参量,可以是矩阵 数值 向量 结构体,根据自己的需要来。在调用的时候 在主函数中输入: [A B]=imag(M N P);大写对应相应的小写imag是子...

在MTALAB中主函数如何调用子函数的计算结果?
子函数有返回值就可以了 比如conv函数,c就是返回值 function c = conv(a, b)if na > nb if nb > 1 a(na+nb-1) = 0;end c = filter(b, 1, a);else if na > 1 b(na+nb-1) = 0;end c = filter(a, 1, b);end ...

matlab主函数调用子函数时,显示输入参数不足要怎么解决呀?
首先,确保主函数中传递给子函数的参数个数与子函数定义的变量数量相匹配。例如,子函数有六个变量,主函数在调用时也应提供六个参数。具体场景如上例所示,主函数中定义了初始参数向量`x0`为`[1,1,1,1]`,共有四个参数,而子函数`constraints`期望六个参数。因此,主函数调用时的参数数量与子...

matlab中主函数怎么使用调用子函数后产生的结果
调用的格式一班为out=fun(in),在子函数中,只要最后对out进行了赋值,那么主函数中就可以是用out的值了,这个和其他编程语言是一样的。

相似回答