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

mplab не матлаб?
Матлаб, конечно. Заработался...

Исправил.
Realking
Apr 9 2012, 07:29
Цитата(Herz @ Apr 9 2012, 01:20)

Мне необходимо скомпилировать проект, написанный в MATLAB, в исполняемый файл, который можно было бы запускать на любом компьютере без инсталляции пакета. Знаю, что такая возможность есть. У MATLAB отличный хелп и я уверен, что со временем разберусь, но пока хотелось бы услышать тех, кто это делал.
Насколько это сложная процедура? Требуется ли глубокое знание С? Нужен ли внешний компилятор? Какова последовательность действий?
Внешний компилятор нужен.
Но у меня без инсталяции пакета (MCRInstaller.exe) запустить не получилось
ну вот написал вам про матлаб, стер сообщение...
ситуация такая- к матлабу необходим компилятор от borlad, microsoft или др.
настраиваете в матлабе пути к компилятору
делаете свой м файл как функцию, далее передаете матлабу эту функцию как вход, на выходе получаете exe файл.
примечание- некоторые функции из toolbox-ов матлаба не компилируются из лиценз. соглашениям.
однако! - если откомпилировать м файл с этими тулбоксами и потом поставить на клиентский ПК матлаб (не пакет его библиотек), то работать будет без запуска матлаба.
на форуме матлаба на рус.языке есть пример как шаг за шагом сделать exe. и тут вроде была тема
знание С не нужно.
в гугле тема быстро раскрывается
http://technologyinterface.nmsu.edu/5_1/5_1f/5_1f.htmlпол дня мытарств и можно сделать первый раз.
Спасибо.
Цитата(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
...
Значит ли это, что внешний не нужен? Ибо
здесь вроде речь идёт о том же, только свежее...
Ещё раз спасибо за ссылки.
да в новом матлабе наверно не нужен, я пользовался 2003 вроде.
вот делюсь чем пользовался сам
"Создание Windows-приложений с использованием математических процедур MATLAB.pdf"
Создание автономного C-приложения matlab
Солидно, спасибо. Есть что почитать.
Что-то странное. Используя deploytool, успешно создаю с помощью встроенного компилятора lcc исполняемый exe-файл. Пробовал варианты и Windows standalone application, и Console application (разница невелика). MATLAB Compiler Runtime установил. Так вот, если запускать приложение где-либо вне директории установки MCR, попросту получаю сообщение:
Нажмите для просмотра прикрепленного файлаНу ладно, не находит - не надо.
Но если внутри - Windows приносит мне извинения, что программа будет закрыта вследствие ошибки и предлагает послать отчёт на деревню Биллу Гейтсу. На этом - финиш.
Уже вроде всё перепробовал...
shf_05
Apr 10 2012, 03:51
кстати виндоус не 7-ка?
создайте и откомпилируйте для начала м файл типа
a= 2;
b=3;
c= a+b
или из примера получится нет?
Нет, Win XP.
И даже в таких элементарных случаях результат аналогичный.
Собственно, непонятно, какова на самом деле должна быть реакция. Для Windows a, b и c - некоторые необъявленные переменные. Неизвестно где находящиеся. Вывод тоже не предусмотрен...
Я бы тоже не понял, чего от меня хотят.
shf_05
Apr 10 2012, 08:00
Цитата(Herz @ Apr 10 2012, 13:33)

Я бы тоже не понял, чего от меня хотят.

собственно как ввод так и вывод в проге может отсутствовать, а если предлагается к билу гейтсу, то скорее всего это уже программа неправильно работеат- обращается в ненужное место или что-нибудь типа того.
попробуйте скомпилировать в папку matlab\work\имя_вашей_программы
Цитата(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
Apr 10 2012, 14:01
в предыдущих версиях матлаба work была рабочей папкой матлаба по умолчанию, всегда в нее все делал...
про адресацию - я никаких особых свойств в м файле не задавал, если такая ошибка- скорее всего сам компилер что-то напутал.
есть у вас возможность применить сторонний компилятор?, вроде бы бесплатный от микрософта подходить должен...
Я рассудил так, что если исполняемый файл создаётся и ошибок при этом не обнаруживается, то с компилятором всё более-менее в порядке. Была, конечно, мысль поменять.
Сечас получил подтверждение: перенёс упакованный проект (с инсталлятором MCR) на ноут, где нет MATLABа, распаковал, запустил - работает.
Причём программка и MCR при этом - в разных папках.
Снёс на основном весь MATLAB, попробовал проделать аналогичное - ни в какую, ровно те же проблемы. Решил, что не в матлабе дело, давно на ОС грешил - пришло время переустановить, видимо. Эх, не хотелось...
shf_05
Apr 11 2012, 04:08
на ноуте поди вин 7 и всякие .dotnet framework сразу установлены.
попробуйте поставить на свой ПК...
Цитата(shf_05 @ Apr 11 2012, 06:08)

на ноуте поди вин 7 и всякие .dotnet framework сразу установлены.
попробуйте поставить на свой ПК...
Нет, у меня везде ХР. К семёрке пока некоторое предубеждение... Вот, переставил на основном, заработало. Посмотрим, что будет после установки MATLAB. Я вот абзац из выложенной Вами книги понять не могу (стр. 92):
Цитата
Обратите внимание, что если машина развертывания имеет инсталляцию
MATLAB, то для работы установленного приложения, каталоги <mcr_root> должны быть первыми на путях,
а для запуска и работы MATLAB каталоги <matlabroot> должны быть первыми на путях.
Где это я должен "устанавливать пути"? И с архивом CTF тоже непонятно. Ничего я сейчас не разворачивал, всё и так работает. А до этого пытался - никакого толку...
Ладно, закончу - доложу. Программ очень много переустанавливать....
Спасибо, что помогаете.
shf_05
Apr 12 2012, 08:03
честно даже не задавался этим, скорее всего речь о переменных среды windows типа PATH, где прописываются пути доступа к файлам.
Ещё вопрос попутно. Мне нужно создать GUI для открытия, обработки и сохранения файлов в произвольных местах. Хочу иметь кнопку Browse, по нажатию на которую открывалось бы окно со структурой каталогов компа. Как это обычно принято для программ с оконным интерфейсом: Меню "Файл", окно "Открыть файл" и т.д.
Затем мог бы отыскать нужную подпапку, в ней - нужный файл и нажать кнопку "Open". Ну и т.п...
Не могу нигде найти в хэлпе, как такое устроить. Никому не приходилось?
shf_05
Apr 25 2012, 17:50
ну как получилось?
сам я так не делал... может быть в новом есть.
попробуйте в гуи билдере воспользоваться визардом, возможно там будет возможность сосздания такого диалогового окна...
а так это вроде называется file menu open (save) dialog.
Да, получилось. На Экспоненте подсказали: есть такая функция uigetfile.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.