Вопрос

У меня есть какой-нибудь код MatLab и GUI для него, и я хочу сделать автономный .exe, чтобы его можно было использовать на компьютерах, которые не установлены MatLab.

Я знаю о компиляторе Matlab и как его использовать, но это создает .exe, который работает только в том случае, если у пользователя есть установленное время выполнения компилятора MATLAB (MCR).

Что меня интересует, есть ли, если есть какие-то способы создать автономный .exe, который все еще использует код MATLAB, но не зависит от MCR. Я хочу просто запустить, когда вы нажмете его, не требуя ничего другого установленного.

Я знаю, можно использовать MATLAB, есть ли способ использовать код с C? Как насчет любых открытых источников альтернатив Matlab, которые это может?

В крайнем случае, если я должен был переписать код MatLab на другом языке, на каком языке вы бы порекомендовали? Я думал C или Python.

Спасибо.

Это было полезно?

Решение

Прошло некоторое время, так как я посмотрел на компилятор MatLab, но если я правильно помню, он имел возможность генерировать код C / C ++, а не выходить на все, и создавать исполняемый файл. Подача всегда была в том, какие набора инструментов используются ваш код, и поддерживает их компилятор или нет. Любой шанс вы можете установить приложение MATLAB на сервере и иметь настольный клиентский телефон для результатов?

Что касается других языков, я бы проверил Numpy и Scipy В сочетании с matplotlib (matplotlib.sf.net). Я работаю с разработчиком MatLab прямо сейчас, и до сих пор он довольно доволен опытом.

Другие советы

MCR требуется, но есть трюк: на самом деле не должно быть установлены, просто доступен на пути. Запуск MCR Watch не требует каких-либо записей реестра или что-либо еще особенное из процесса установки. Вам просто нужны читаемые файлы MCR и DLL, локаубируемые нормальным механизмом поиска, который включает в себя проверку пути во время запуска программы.

Например, я запускаю скомпилированные приложения MATLAB, используя MCR, который «установлен» на сетевом диске. Вы запустите установщик MCR на одном компьютере и установите его на сетевой диск X:\Matlab\MCR\R2010b-win32 вместо обычного C:\Program Files место нахождения. Тогда будет запущена ваша программа через скрипт обертки, который добавляет X:\Matlab\MCR\R2010b-win32\bin\win32 К пути перед вызовом фактического файла .exe и запустится на любой другой машине, который видит тот же диск, даже если установщик MCR не был запущен на них. (В конце концов мы остановились, потому что загрузка MCR из сети является ударом производительности.)

Вы можете использовать этот трюк, чтобы объединить MCR с вашим приложением. Придерживайте целую установку MCR (дерево DIR в результате установки, не сама программы установщика) в подкаталоге дерева каталогов вашего приложения и иметь точку записи в ваше приложение, будь файл .bat или другой скрипт обертки, который придерживается, что MCR DIR на пути перед запуском вашего файла зависимого MCR.

Конечно, проверьте своими юридическими людьми, чтобы убедиться, что это не нарушает ваши термины лицензирования.

MathWorks недавно представил новый продукт MatLab Coder. Отказ Он способен генерировать код C C ++ из вашего кода MATLAB (генерирует исходный код не исполняемые файлы). Сгенерированный код является портативным и не зависит от MCR, хотя он поддерживает только подмножество функций языка CORE MATLAB.

Я немного исследовал, и я боюсь, что ваш единственный вариант либо использует MCR или преобразование вашего кода на другой язык. Это имеет смысл, что MathWorks хочет, чтобы вы использовали только их компилятор, чтобы создать файлы .exe.

Рассмотрим другой язык, только если вы уже знакомы с ними, и / или у вас достаточно времени за то, что вы пытаетесь выполнить. Кроме того, если вы используете функции в Matlab, которые вы не написали, то вам придется писать те, которые также могут быть очень сложными / невозможными.

Если ни одно из вышеперечисленного не является проблемой, то какой язык вы должны использовать, действительно зависит от вас. Вы не просто ограничены C и Python. Matlab, я мое мнение, очень похоже на другие общие языки, по крайней мере, с точки зрения синтаксиса. Вам придется сделать некоторое изучение в любом случае, поэтому я бы предположил, что вы либо пойдете с языком, который вы знаете, или выберите язык, для которого оказание помощи легко. C # и Java - два более «известных» языках.

Компилятор Matlab 'не является компилятором. Он переводит MATLAB M-CODE в код C ++, а затем отправляет, что на фактический компилятор, такой как The One в Visual Studio и т. Д. Код, который он делает, не очень читается.

Чтобы сделать автономное приложение, установите следующие набор инструментов (по любой цене, которую вы заплатили):

Matlab Builder Ja, Matlab Builder NE, Compiler MatLab

Настройте компилятор MATLAB, указывая его на фактический компилятор на вашем диске (т.е. MBUILD -SETUP).

Выберите компилятор: [1] Microsoft Visual C ++ 2008 SP1 в C: Program Files (x86) Microsoft Visual Studio 9.0

Затем используйте (то есть тип DeployTool), чтобы сделать основной и определить различные функции помощника и т. Д. Консоль SECT Windows или автономный. Затем нажмите сборку. Это сделает EXE-файл для вас. Вы также можете компилировать DLL и т. Д. По мере необходимости.

Новые версии поддержки «Компилятора» Компиляция EVAL, всех лицензированных инструментов, которые лицензированы, и он поддерживает импорт классов Java, который позволит вам использовать, например, DOM для анализа XML-файла и т. Д.

Чтобы использовать результирующий EXE-файл на компьютере, который не установлен на нем MatLab, вам нужно получить MATLAB MCR и установить его. MCR должен сопоставить именно версию MATLAB, который вы использовали для создания компиляционного кода.

С уважением,

Иван

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top