Автономные приложения и аргументы

Обзор

Можно создать автономный режим для запуска приложения без передачи или извлечения аргументов в него или из него.

Однако аргументы могут быть переданы автономным приложениям, созданным с помощью MATLAB® Compiler™ так же, как входные параметры передаются в любое консольное приложение.

Ниже приведены примеры команд, используемых для выполнения приложения, вызываемого filename из Windows® или Linux® командная строка с различными типами входных параметров.

Передайте имена файлов, цифры или буквы, матрицы и переменный MATLAB

Пройти....Использовать этот синтаксис....Примечания
Файл с именем helpfilefilename 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 программе в качестве входов, переменная должна сначала быть преобразована в вектор символов. Для примера:

Использование SYSTEM, DOS или UNIX

Задайте целую команду, чтобы запустить приложение как вектор символов (включая входные параметры). Например, передавать цифры и буквы 1 2 3 a b c может быть выполнено с помощью SYSTEM команда, следующим образом:

system('filename 1 2 3 a b c')

Использование! (Bang) Оператор

Вы также можете использовать ! (bang) оператор из MATLAB следующим образом:

!filename 1 2 3 a b c

Когда вы используете ! (bang) оператор, оставшаяся часть входной линии интерпретируется как SYSTEM команда, поэтому невозможно использовать переменный MATLAB.

Использование системы Windows

Чтобы запустить автономное приложение путем двойного щелчка по нему, вы создаете пакетный файл, который вызывает автономное приложение с указанными входными параметрами. Для примера:

 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 Compiler, имейте в виду следующее:

  • Входные параметры, которую вы передаете в ваш исполняемый файл из системного приглашения, получаются как вектор символов входа. Таким образом, если вы ожидаете данные в другом формате (для примера, double), необходимо сначала преобразовать вход вектора символов в необходимый формат в коде MATLAB. Для примера можно использовать STR2NUM чтобы преобразовать входной параметр вектора символов в числовые данные.

  • Вы не можете вернуть значения из автономного приложения пользователю. Единственный способ вернуть значения из скомпилированного кода - это либо отобразить их на экране, либо сохранить в файле.

    Для порядка вывода данных на экран выполните одно из следующих действий:

    • Не используйте точки с запятой для подавления команд, которые дают ваши возвращаемые данные.

    • Используйте DISP команда для отображения значения переменных, затем перенаправить выход в другие приложения с помощью перенаправлений (> оператор) или трубопроводы (||) в системах, отличных от Windows.

Взятие входных параметров и отображение на экране с помощью файла MATLAB.  Вот два способа использовать файл MATLAB, чтобы взять входные параметры и отобразить данные на экране:

 Метод 1

 Метод 2

Для просмотра документации необходимо авторизоваться на сайте