Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MATLAB to EXE-file
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
Herz
Мне необходимо скомпилировать проект, написанный в MATLAB, в исполняемый файл, который можно было бы запускать на любом компьютере без инсталляции пакета. Знаю, что такая возможность есть. У MATLAB отличный хелп и я уверен, что со временем разберусь, но пока хотелось бы услышать тех, кто это делал.
Насколько это сложная процедура? Требуется ли глубокое знание С? Нужен ли внешний компилятор? Какова последовательность действий?
shf_05
mplab не матлаб?
Herz
Цитата(shf_05 @ Apr 9 2012, 05:41) *
mplab не матлаб?

Матлаб, конечно. Заработался... biggrin.gif Исправил.
Realking
Цитата(Herz @ Apr 9 2012, 01:20) *
Мне необходимо скомпилировать проект, написанный в MATLAB, в исполняемый файл, который можно было бы запускать на любом компьютере без инсталляции пакета. Знаю, что такая возможность есть. У MATLAB отличный хелп и я уверен, что со временем разберусь, но пока хотелось бы услышать тех, кто это делал.
Насколько это сложная процедура? Требуется ли глубокое знание С? Нужен ли внешний компилятор? Какова последовательность действий?


Внешний компилятор нужен.
Но у меня без инсталяции пакета (MCRInstaller.exe) запустить не получилось
shf_05
ну вот написал вам про матлаб, стер сообщение...
ситуация такая- к матлабу необходим компилятор от borlad, microsoft или др.
настраиваете в матлабе пути к компилятору
делаете свой м файл как функцию, далее передаете матлабу эту функцию как вход, на выходе получаете exe файл.

примечание- некоторые функции из toolbox-ов матлаба не компилируются из лиценз. соглашениям.

однако! - если откомпилировать м файл с этими тулбоксами и потом поставить на клиентский ПК матлаб (не пакет его библиотек), то работать будет без запуска матлаба.

на форуме матлаба на рус.языке есть пример как шаг за шагом сделать exe. и тут вроде была тема

знание С не нужно.

в гугле тема быстро раскрывается
http://technologyinterface.nmsu.edu/5_1/5_1f/5_1f.html

пол дня мытарств и можно сделать первый раз.
Herz
Спасибо.

Цитата(Realking @ Apr 9 2012, 10:29) *
Внешний компилятор нужен.

У меня установлен R2011b. Вроде установлен и компилятор. Во всяком случае, существует директорий:
Цитата
C:\Program Files\MATLAB\R2011b\toolbox\compiler\mcr\compiler

а в Readme.txt из пакета установки в разделе 1. R2011b Product and Platform List указано, что пакет включает, среди прочего, и компилятор, насколько я понимаю:
Цитата
...
MATLAB Compiler 4.16 - glnx86 glnxa64 maci64 win32 win64
...

Значит ли это, что внешний не нужен? Ибо здесь вроде речь идёт о том же, только свежее...
Ещё раз спасибо за ссылки.

shf_05
да в новом матлабе наверно не нужен, я пользовался 2003 вроде.

вот делюсь чем пользовался сам
"Создание Windows-приложений с использованием математических процедур MATLAB.pdf"
Создание автономного C-приложения matlab
Herz
Солидно, спасибо. Есть что почитать. sm.gif
Herz
Что-то странное. Используя deploytool, успешно создаю с помощью встроенного компилятора lcc исполняемый exe-файл. Пробовал варианты и Windows standalone application, и Console application (разница невелика). MATLAB Compiler Runtime установил. Так вот, если запускать приложение где-либо вне директории установки MCR, попросту получаю сообщение:
Нажмите для просмотра прикрепленного файла

Ну ладно, не находит - не надо.
Но если внутри - Windows приносит мне извинения, что программа будет закрыта вследствие ошибки и предлагает послать отчёт на деревню Биллу Гейтсу. На этом - финиш.
Уже вроде всё перепробовал... crying.gif
shf_05
кстати виндоус не 7-ка?
создайте и откомпилируйте для начала м файл типа
a= 2;
b=3;
c= a+b
или из примера получится нет?
Herz
Нет, Win XP.
И даже в таких элементарных случаях результат аналогичный.

Собственно, непонятно, какова на самом деле должна быть реакция. Для Windows a, b и c - некоторые необъявленные переменные. Неизвестно где находящиеся. Вывод тоже не предусмотрен...
Я бы тоже не понял, чего от меня хотят. biggrin.gif
shf_05
Цитата(Herz @ Apr 10 2012, 13:33) *
Я бы тоже не понял, чего от меня хотят. biggrin.gif

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

попробуйте скомпилировать в папку matlab\work\имя_вашей_программы
Herz
Цитата(shf_05 @ Apr 10 2012, 11:00) *
собственно как ввод так и вывод в проге может отсутствовать, а если предлагается к билу гейтсу, то скорее всего это уже программа неправильно работеат- обращается в ненужное место или что-нибудь типа того.

попробуйте скомпилировать в папку matlab\work\имя_вашей_программы

Да, я тоже так думаю. Отсюда подозрение, что нужно как-то задавать адресацию, чтобы не было обращений в пустоту или защищённую область.
У меня рабочая папка: My Documents\MATLAB, сама программа установлена в C:\Program Files\MATLAB\R2011b, MCR - здесь: C:\Program Files\MATLAB\MATLAB Compiler Runtime\v716. И только в последнем из этих мест ехе-файл хоть пытается запуститься. Папки work у меня нигде нет. Что Вы имели в виду?
shf_05
в предыдущих версиях матлаба work была рабочей папкой матлаба по умолчанию, всегда в нее все делал...
про адресацию - я никаких особых свойств в м файле не задавал, если такая ошибка- скорее всего сам компилер что-то напутал.
есть у вас возможность применить сторонний компилятор?, вроде бы бесплатный от микрософта подходить должен...
Herz
Я рассудил так, что если исполняемый файл создаётся и ошибок при этом не обнаруживается, то с компилятором всё более-менее в порядке. Была, конечно, мысль поменять.
Сечас получил подтверждение: перенёс упакованный проект (с инсталлятором MCR) на ноут, где нет MATLABа, распаковал, запустил - работает.
Причём программка и MCR при этом - в разных папках.
Снёс на основном весь MATLAB, попробовал проделать аналогичное - ни в какую, ровно те же проблемы. Решил, что не в матлабе дело, давно на ОС грешил - пришло время переустановить, видимо. Эх, не хотелось...
shf_05
на ноуте поди вин 7 и всякие .dotnet framework сразу установлены.
попробуйте поставить на свой ПК...
Herz
Цитата(shf_05 @ Apr 11 2012, 06:08) *
на ноуте поди вин 7 и всякие .dotnet framework сразу установлены.
попробуйте поставить на свой ПК...

Нет, у меня везде ХР. К семёрке пока некоторое предубеждение... Вот, переставил на основном, заработало. Посмотрим, что будет после установки MATLAB. Я вот абзац из выложенной Вами книги понять не могу (стр. 92):
Цитата
Обратите внимание, что если машина развертывания имеет инсталляцию
MATLAB, то для работы установленного приложения, каталоги <mcr_root> должны быть первыми на путях,
а для запуска и работы MATLAB каталоги <matlabroot> должны быть первыми на путях.

Где это я должен "устанавливать пути"? И с архивом CTF тоже непонятно. Ничего я сейчас не разворачивал, всё и так работает. А до этого пытался - никакого толку...
Ладно, закончу - доложу. Программ очень много переустанавливать....
Спасибо, что помогаете.
shf_05
честно даже не задавался этим, скорее всего речь о переменных среды windows типа PATH, где прописываются пути доступа к файлам.
Herz
Ещё вопрос попутно. Мне нужно создать GUI для открытия, обработки и сохранения файлов в произвольных местах. Хочу иметь кнопку Browse, по нажатию на которую открывалось бы окно со структурой каталогов компа. Как это обычно принято для программ с оконным интерфейсом: Меню "Файл", окно "Открыть файл" и т.д.
Затем мог бы отыскать нужную подпапку, в ней - нужный файл и нажать кнопку "Open". Ну и т.п...
Не могу нигде найти в хэлпе, как такое устроить. Никому не приходилось?
shf_05
ну как получилось?
сам я так не делал... может быть в новом есть.
попробуйте в гуи билдере воспользоваться визардом, возможно там будет возможность сосздания такого диалогового окна...
а так это вроде называется file menu open (save) dialog.
Herz
Да, получилось. На Экспоненте подсказали: есть такая функция uigetfile.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.