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

来源:百度知道 编辑:UC知道 时间:2024/06/03 06:18:11
我想在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) )

为什么一直出错

在一个m文件中通常有两种定义子函数的方法:

1.嵌套定义

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

end

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

function myfunc1()
...
end

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

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

可以调用,但只能有函数;而不能像上边这样,命令和函数共存。
若想共存,分成两个文件写。把命令部分写到另一个文件,运行这个文件。