MATLAB m文件中定义函数后可否在同一m文件中调用

我想在M文件中定义一个函数,然后在下面据一组数据调用这个函数可不可以,比如这样写
%convolution1.m
function [ y, ny ] = convolution1( x, nx, h, nh )
ny = nx + nh;
y = conv( x, h )
end

x = [ 3, 11, 7, 0, -1, -4, 2 ];
h = [ 2, 3, 0, -5, 2, 1 ];

[ y, ny ] = convolution( x, length(x), h, length(h) )

为什么一直出错

可以调用,但只能有函数;而不能像上边这样,命令和函数共存。
若想共存,分成两个文件写。把命令部分写到另一个文件,运行这个文件。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-10
在一个m文件中通常有两种定义子函数的方法:

1.嵌套定义

function mainFunc()
...
a = myfunc1();
...
function myfunc1()
...
end

end

2. 非嵌套定义
function mainFunc()
...
a = myfunc1();
...
end

function myfunc1()
...
end

在第二种情况中,myfunc1和主函数就是两个独立的函数,和把它们写在两个独立的文件
中没有差别。变量名想怎么起怎么起,不会有任何冲突。

而第一种情况中,myfunc1会和主函数共享变量名。这种情况下,使用相同的变量名。

matlab的调用的函数能不能跟函数放在一个m文件中
可以的,但是调用函数的程序本身必须定义成一个函数。比如:被调用的函数是fun1,调用它的函数是callfun1。那么你要新建一个callfun1.m,里面输入:function callfun1 %不需要输入和输出参数,直接点运行即可执行 a=0.1;b = fun(a) %点运行后,会直接在command window里显示b=0.01 function y ...

MATLAB中的M文件是不是可以相互间调用啊??
m文件分两种,一种是m脚本文件(m script),另一种是m函数文件(m function)。区别在于后者一开始以function作为关键字说明。如果A.m是m函数,那么可以在B.m中调用。如果A.m是m脚本,那么不能被B调用。但你可以用run('A')这样的方式在B.m中运行A.m,但要注意,这时A和B共享workspace的数据。

matlab中自己定义的功能函数 是不是不能和要用到这个功能函数的主程序在...
可以放在同一个文件中,这样的话主程序需要设置成main函数。但最好还是单独做成一个文件,放在同一文件夹下调用!

matlab中一个m文件怎么调用另一个m文件的函数
如果在同一个文件夹下就可以直接按函数调用格式调用,如果不在同一个文件夹下,需要添加addpath('被调函数路径'); 之后按函数调用格式调用

MATLAB中的M文件是不是可以相互间调用啊??
必须可以相互调用,只要放在同一个文件夹中,A可以调用B,B也可以调用A 怎么调用,在别的地方怎么调用在.m函数中也就怎么调用

matlab中一个m文件怎么调用另一个m文件的函数
'aa.m');如果不在搜索路径,则需要给完整路径,如run('C:\\ddd\\aa.m')、run('..\/..\/ddd\/aa.m')如果是自己写的函数(以 function 开头):最好把它放在PATH的某个文件夹里,一般的做法是,把所有自定义函数都集中放在一起,然后把这个文件夹(需要的话还有子文件夹)加入到PATH中 ...

matlab中一个m文件怎么调用另一个m文件的函数
将两个m文件放在同一目录,在第一个m文件里面直接输入第二个m文件的函数名称即可 。[输出1,输出2,..]=函数名称(变量1,变量2,...)

matlab中一个m文件怎么调用另一个m文件的函数
保存为和刚才相同函数名的文件Untitled_x.m。7、最后想要调用m文件,也很简单,只要依次把即将要被调用的文件保存到窗口Command Window运行的主界面文件夹,在Command Window窗口新起一行,写好文件名,把所有输入变量的具体数值填好,按键盘的回车键,即可表示调用运行了一次这个m文件得到的结果。

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、首先打开MATLAB软件,点击“CurrentFolder”(当前文件夹)选项卡,选择所需要存储主函数和子函数的文件夹,创建主函数的m文件并命名,然后在该文件中定义所有的变量和接口。2、其次在主函数中调用子函数,在同一个.m文件中定义子函数并使用子函数,在调用子函数时,只需要调用子函数的名称即可,无需...

相似回答