如果你的主程序是普通的m程序,不是function,而子程序是function,这两个程序是不能写在一起的
举个例子:
%主程序
a=1
b=2
c=addfun(a,b)
%
子程序
function
c=addfun(a,b)
c=a+b;
return
以上是不能写在一个m文件里的。
但是
function
mainfun()
clc
a=1
b=2
c=addfun(a,b)
%
子程序
function
c=addfun(a,b)
c=a+b
return
这样子时可以的,可以直接运行。不过当程序运行结束后,你将无法查看主程序和子程序的变量的值。
给你个例子stat.m:function [mean,stdev] = stat(x)
n = length(x)
mean = avg(x,n)
stdev = sqrt(sum((x-avg(x,n)).^2)/n)
function mean = avg(x,n)
mean = sum(x)/n
在同一个.m文件中,定义了两个函数,其中stat(x)为主函数,avg(x,n)为子函数,主函数调用子函数
主函数必须与.m文件同名,子函数必须跟在主函数或其他子函数后
主函数在此文件外可见,子函数不可见,即主函数全局,子函数非全局
1、在电脑桌面上打开MATLAB。
2、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函数库文件夹中。
3、首先,输入“editconv”这个“conv”是我准备编辑的子函数的主函数名,每个人所需的主函数名都不一样,这里可以不要那么在意。然后就可以打开相应的主函数,这是可以看到主函数所在文件夹位置。如图所示,※记住这个位置。
4、然后进行子函数的编辑,首先新建一个新的m文件,然后在编辑框中输入所要的子函数,例如我就是输入了convnem的函数,这是conv的子函数。然后点击保存。
5、接下来,在“conv”所在文件位置,将位置记录下来,将子函数的文件保存到主函数所在的文件夹即可,然后在重新的将你所需的程序(含有子函数的)输入并且执行,这时你会发现原来提示的错误没有了,那么这时调用自己添加的子函数成功了。以后有相应的子函数都可以通过这样的方法进行添加子函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)