使用matlab创建函数

时间:2010-08-05 07:48:29

标签: matlab

我写了以下函数

% e is n×1 and y is n×1 vectors
function z=e_rand(e,y)
         b_LS=regress(e,y)
         z=b_LS*5

我在MATLAB工具箱中保存了该功能。 但当我运行该函数时,我收到以下错误: 输入参数“e”未定义

如何正确创建功能?

2 个答案:

答案 0 :(得分:6)

你不要运行一个功能。你在表达式中使用它。您可以在命令行中调用您的函数。但是你不要在函数上使用run命令。运行仅适用于脚本,而不适用于函数。

在命令行中,只需输入:

z = e_rand(e,y);

答案 1 :(得分:0)

如果你想让你的函数保持原样,并将你的函数封装在另一个函数中,那么你需要在父函数中给出e和y值。

试试这个:

    function parent()
    clear all, close all
    n = randi(10, 1)
    e = rand(n, 1)
    y = rand(n, 1)
    z = e_rand(e, y)

        % e is [n×1] and y is [n×1] vectors
        function z = e_rand(e, y)
                 b_LS = regress(e, y)
                 z = b_LS * 5
        end
    end

作品引用:http://www.mathworks.com/help/matlab/matlab_prog/nested-functions.html