создание функции с использованием Matlab - PullRequest
1 голос
/ 05 августа 2010

Я написал следующую функцию

% 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 ]

6 голосов
/ 05 августа 2010

Вы не запускаете функцию. Вы используете это в выражении. Вы вызываете свою функцию в командной строке. Но вы не используете команду запуска для функции. Запуск только для скриптов, а не для функций.

В командной строке просто введите:

z = e_rand(e,y);
0 голосов
/ 18 ноября 2012

Если вы хотите оставить свою функцию как есть и инкапсулировать вашу функцию в другой функции, то вам нужно дать значения 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...