Скрипты 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

Вопрос:

У меня есть опыт использования октавы. Тем не менее, 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

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

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