Можно создать автономный модуль для запуска приложения без передачи или извлечения аргументов в него или из него.
Однако аргументы могут передаваться автономным приложениям, созданным с помощью MATLAB ® Compiler™, так же, как входные аргументы передаются любому консольному приложению .
Ниже приведены примеры команд, используемых для выполнения приложения с именем filename из командной строки Windows ® или Linux ® с различными типами входных аргументов.
| Пройти.... | Использовать этот синтаксис.... | Примечания |
|---|---|---|
Файл с именем helpfile | filename helpfile | |
| Цифры или буквы | filename 1 2 3 a b c | Не используйте запятые или другие разделители между передаваемыми цифрами и буквами. |
| Матрицы в качестве входных данных | filename "[1 2 3]" "[4 5 6]" | Разместите двойные кавычки вокруг входных аргументов, чтобы обозначить пробел. |
| Переменные MATLAB |
for k=1:10 cmd = ['filename ',num2str(k)]; system(cmd); end | Для передачи переменной MATLAB в программу в качестве входных данных необходимо сначала преобразовать ее в символьный вектор. |
Автономное приложение, использующее аргументы из MATLAB, вызывается с помощью любой из следующих команд:
SYSTEM
DOS
UNIX
!
Для передачи содержимого переменной MATLAB в программу в качестве входных данных необходимо сначала преобразовать переменную в символьный вектор. Например:
Укажите всю команду для запуска приложения в виде символьного вектора (включая входные аргументы). Например, передача цифр и букв 1 2 3 a b c может быть выполнено с помощью SYSTEM , следующим образом:
system('filename 1 2 3 a b c')Вы также можете использовать ! оператор (bang) из MATLAB следующим образом:
!filename 1 2 3 a b c
При использовании ! (bang) оператор, остальная часть входной линии интерпретируется как SYSTEM поэтому использование переменных MATLAB невозможно.
Чтобы запустить автономное приложение, дважды щелкнув его, создайте пакетный файл, вызывающий автономное приложение с указанными входными аргументами. Например:
rem This is main.bat file which calls rem filename.exe with input parameters filename "[1 2 3]" "[4 5 6]" @echo off pause
Последние две строки кода в main.bat добавляются таким образом, чтобы окно, отображающее выходные данные, оставалось открытым до тех пор, пока не будет нажата клавиша.
После сохранения этого файла вы запускаете код с указанными выше аргументами, дважды щелкнув значок для main.bat.
При запуске файлов MATLAB с аргументами, которые также планируется развернуть с помощью компилятора MATLAB, помните следующее:
Входные аргументы, передаваемые исполняемому файлу из системного запроса, принимаются как ввод символьного вектора. Таким образом, если ожидаются данные в другом формате (например, двойном), необходимо сначала преобразовать ввод вектора символов в требуемый формат в коде MATLAB. Например, можно использовать STR2NUM для преобразования ввода символьного вектора в числовые данные.
Невозможно вернуть значения из автономного приложения пользователю. Единственный способ вернуть значения из скомпилированного кода - отобразить их на экране или сохранить в файле.
Для возврата данных на экран выполните одно из следующих действий:
Не используйте точку с запятой для подавления команд, которые дают возвращаемые данные.
Используйте DISP для отображения значения переменной, а затем перенаправления выходных данных в другие приложения с помощью перенаправлений ( > оператор) или трубы (||) в системах, отличных от Windows.
Ввод аргументов и отображение на экране с помощью файла MATLAB. Существует два способа использования файла MATLAB для ввода входных аргументов и вывода данных на экран: