2015-02-03 3 views
1

У меня есть .m файл Matlab, который принимает три входных аргумента:Запуск Matlab .m файл с аргументами в сценарии Баш

calculate('input.txt','Alex','output.txt')

Я хотел бы запустить этот .m файл в скрипт следующим образом:

matlab -nodisplay -nodesktop -r "run calculate('input.txt','Alex','output.txt)"

К сожалению, это не сработало. Я получаю следующую ошибку:

Error using run (line 70)

calculate('input.txt','Alex','output.txt') not found.

Любой указатель на то, как я могу дать входные аргументы/переменные?

Спасибо.

Примечание: Следующее не сработало - жалобы на слишком много аргументов.

matlab -nodisplay -nodesktop -r "run calculate input.txt Alex output.txt"

ответ

2

Я думаю, вам просто нужно удалить run. run предназначен для скриптов, а не для функций (и в любом случае он не нужен, если вам не нужно указывать путь к скрипту). Итак, попробуйте

matlab -nodisplay -nodesktop -r "calculate('input.txt','Alex','output.txt')" 

Если функция calculate не в пути Matlab, измените его папку первой. Например,

matlab -nodisplay -nodesktop -r "cd 'c:\users\Alex\SomeFolder'; calculate('input.txt','Alex','output.txt')" 
+0

Спасибо за ответ. Я изменил, как вы предлагаете. Теперь я получаю следующую ошибку: Undefined функция «вычисляет» для входных аргументов типа «char». ps: Ввод текста в обоих направлениях отлично работает в командной строке. – user3131944

+0

Скорее всего, потому, что 'calculate' не находится в пути Matlab. Поместите его в папку, которую Matlab видит по умолчанию (любая папка, включенная в 'путь') –

+1

Или измените папку перед запуском' calculate'; см. ответ edit –

Смежные вопросы