Скрипты matlab не принимают функции?

Вопрос:

У меня есть опыт использования октавы. Тем не менее, Matlab действует совсем по-другому. У меня есть этот простой скрипт:

function y=test(x)
y=x*10;
end

a=test(10);

Когда я запускаю его (это зеленый “играть” -arrow в графическом интерфейсе), он вызывает следующую ошибку:

Error: File: TESTFILE.m Line: 5 Column: 1
This statement is not inside any function.
(It follows the END that terminates the definition of the function "bla".)

Что не так? Не могу я просто запустить scipt, где я использую свои собственные функции рядом с кодом, не входящим в функцию?

Лучший ответ:

Стиль вашего кода работает и на Python, но не в MATLAB. Ошибка дает вам ответ. This statement is not inside any function. У вас есть три следующих решения:

1- Либо сделайте основную функцию (это в том же файле m)

function a=main()
    a=test(10);
end


function y=test(x)
    y=x*10;
end

2- Или сохраните функцию test.m и используйте последнюю строку для вызова вашей функции из другого сценария или из командной строки.

3- Вы также можете иметь вложенные функции (все в одном и том же файле):

function a=main()
    a=test(10);

    function y=test(x)
        y=x*10;
    end
end

Найти очень полезную документацию и примеры здесь.

Оцените статью
TechArks.Ru
Добавить комментарий