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