使用MATLAB

问题描述:

创建功能我写了下面的功能使用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

Z = e_rand(1,1)运行完美 – Mikhail 2010-08-05 08:56:38

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

在命令行中,只需输入:

z = e_rand(e,y); 

如果你想离开你的功能,是和另一个函数内封装的功能,那么你需要给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