Вопрос:
У меня есть опыт использования октавы. Тем не менее, 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
Найти очень полезную документацию и примеры здесь.