запустить matlab и передать целочисленный параметр из командной строки - PullRequest
0 голосов
/ 31 октября 2011

У меня есть функция Matlab, и я смог запустить ее из командной строки.Теперь я хочу передать параметр в файл из командной строки.Параметр является целым числом.Кажется, когда я перехожу из командной строки, он всегда воспринимается как «символ».

Вот как я запускаю команду

matlab -nodesktop -nosplash -r "mycommand 3"

Например, если у меня есть функция

function [ ] = mycommand( a )
a = a+3;
disp(a)
end

печатает 54 вместо 6.

Есть ли способ обойти это?Я не хочу проверять тип переменной в моем коде.

Спасибо

Ответы [ 2 ]

5 голосов
/ 31 октября 2011

Вам нужно выполнить функцию так же, как в интерпретаторе Matlab:

matlab -nodesktop -nosplash -r "mycommand(3)"

(обратите внимание на круглые скобки вокруг 3)

1 голос
/ 01 ноября 2011

MarkD дал хороший ответ.Хотя вы упомянули, что можете быть недовольны этим (я уверен, что на это есть веские причины), другой вариант - добавить немного дополнительного кода в начало вашей функции, которая преобразует ввод символов в числовой, если команда вызывается черезmatlab -r:

if ischar(a)
    a = str2num(a);
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...