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会和主函数共享变量名。这种情况下,使用相同的变量名。
相似回答