|
|
|
СТАРИК |
|
|||
Unregistered |
Есть возможность получить(передать)данные DELPHI-MATLAB?
|
|||
|
||||
Guest |
|
|||
Unregistered |
Насколько я помню, Matlab может работать с Фортраном и С++, т.е. можно создавать dll'ки на эти языках, которые работают с Matlab'ом через указанный в документации API. Еще Matlab позволяет создавать объекты Java и наверное управлять ими (точно не знаю, не разбирался).
Но может быть можно работать с Matlab'ом через COM. А вообще объясни подробнее, что тебе нужно. |
|||
|
||||
Guest |
|
|||
Unregistered |
Как в EXCELnkе сделаны вызовы по запускам матлаб комманд
и GET и PUT ? Или как сделать так чтобы работа DELPHI -программы управляла работой (вызовом комманд и получением результатов и тп.) МАТЛАБ.? |
|||
|
||||
youri |
|
||||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
Если ты объяснишь, что такое EXCELnkе, то я попробую подумать
Если тебя интересует управление Matlab'а программой, то, если верить документации, Matlab'ом можно управлять с помощью программы на C и на Fortran'е (через COM) . Так что если ты не настаиваешь на использовании Delphi, то я думаю что смогу помочь тебе в отношении C (1). Хотя мне кажется я видел документацию на сайте Matlab по созданию COM объектов с помощью Matlab'а - может быть тогда работать с этими объектами можно будет из Delphi (2). Еще вроде можно компилировать Matlab'овские файлы на C/C++, и в результате создавать exe-шники, которые можно будет вызывать из Delphi для выполнения каких-либо функций (3). Определись какой вариант тебе больше нравиться (1, 2, 3) |
||||
|
|||||
СТАРИК |
|
|||
Unregistered |
Если можно выгрузить функции MATLAB, (только нужные) в DLL с помощью C++ а потом вызывать из DELPHI -это конечно хорошо и здорово!
Но EXCELLNK (это *.xla для обмена данными EXCEL-MATLAB и выполнение комманд! matlab c помощью его функции eval т.е передачей строки выполнения в командную строку matlab и заставление выполнения. Eval, как мне кажется ,работает также как макроподстановка в foxpro c помощью & ) [u] Научи пожалуйста компилировать функции matlab в Run-time и конвертировать структуры данных matlab туда и обратно! P.S Вообще библиотеки поддержки matlab в DELPHI существуют или нет? Many thanks! |
|||
|
||||
youri |
|
|||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
Не слышал По поводу остального: чуть позже |
|||
|
||||
devmstr |
|
|||
Developer Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
А попробуй через ActiveX. Должно получиться
-------------------- Think different ©Steve Jobs |
|||
|
||||
СТАРИК |
|
|||
Unregistered |
ActiveX ???
Пожалуйста поточнее !Как это делается ? Буду очень признателен! Спасибо заранее! |
|||
|
||||
youri |
|
||||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
Создай m-файл, с нужной тебе функцией. Чтобы сделать из него приложение, дай команду
а чтобы сделать dll
Так сказано в документации. Но у меня ошибки выдает (Не достаточно памяти для переменных среды, Имя команды или файла указано неправильно). Надо будет разобраться. Но ты попробуй и скажи что у тебя получилось Кстати, тебя скорее должна интересовать dll, чтобы ты смог воспользоваться ей в другом приложении. Как воспользовавться exe-шником, пока что не знаю. Правда не факт, что таким методом у меня можно создать dll, у меня mcc ключ -l не поддерживает (может потому, что у меня Matlab Release 12) |
||||
|
|||||
youri |
|
|||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
Скажи, кстати, какой у тебя release of matlab
|
|||
|
||||
СТАРИК |
|
|||
Unregistered |
Я в ABOUTе Matlabа вижу Version 5.3.0.10183 (R11) от 21 января 1999 г.
,а его MCC- компилятор версии 2.0 и у него нужный ключ -x создает DLL-ку ,С-исходник,заголовочный H-файл и еще один MEX-файл. Но, что интересно матлабовские m-файлы-функции со многими выходными параметрами (я их называю процедурами) до конца не транслируются ( останавливается после создания *.obj т.е не линкуется выбрасывает кучу (несколько страниц) мусора процесса ошибочной линковки!) Попробую сейчас использовать DLL-ку обычным образом в Дельфи. Спасибо ВСЕМ за ВСЕ! Буду молиться богу за ваши успехи. |
|||
|
||||
youri |
|
|||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
По поводу релиза - он у тебя 11 (R11)
А на счет mex-файла - странно, по идее файлов с таким расширением не должно быть (под Windows это должна быть dll) |
|||
|
||||
youri |
|
|||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
Кстати, может ты свой email оставишь, поделились бы опытом работы в Matlab?
|
|||
|
||||
СТАРИК |
|
|||
Unregistered |
Yuori Ты прав! я спутал ! файл с расширением *.С а имя Myfun_mex.c
ТЕПЕРЬ ДРУГАЯ ПРОБЛЕМА-помоги пожалуйста-найти таблицу соответствия типов C++---Delphi ? а также базовые типы Wndows Кроме того имеется -ли программа переконвертации заголовочного H-файла C на *.pas чтобы вручную не извращаться каждый раз. |
|||
|
||||
youri |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
Давай разберемся, что ты сделал: ты создал mex-файл. Что такое mex-файл? Это способ, с помощью которого Matlab позволяет создавать файлы на C/C++ и Fortran'е. При этом ты можешь пользоваться как функциями C/С++ и Fortran'а, так и функциями MatLab'а (они описаны в pdf-документации). При создании mex-файла вручную в нем должна быть как минимум одна функция, которая называется mexFunction - она принимает входные аргументы от MatLab'а и возвращает выходные аргументы. Судя по всему, когда создаешь mex-файл с помощью компилятора, он создает mex-библиотеку (такого я еще не встречал) - dll экспортирует функцию mexLibrary, которая возвращает информацию об адресах функций, находящихся в dll-файле (не всех). Я, кстати, не знаю, можно ли будет воспользоваться этими адресами (т.е. вызывать функции, находящиеся в dll, по адресам).
По поводу программы, которая конвертирует h-файлы в pas-файлы, не знаю
Основная проблема тут состоит в том, чтобы перевести на Delphi структуры данных и заголовки функций, которые понадобятся твоей программе не Delphi (тебе ведь не надо подключать созданные c-файлы к твоей программе на Delphi) - а они могут меняться только с изменением версии MatLab'а и то вряд ли.
Скажи какие типы данных тебя интересуют и я, может, что-нибудь придумаю. Приведи пример какой-нибудь функции MatLab'а, которую ты хочешь вызывать из Delphi. В MatLab'е есть такая штука, как MatLab COM Builder. Может, с помощью ее можно облегчить процесс доступа к функциям MatLab'а. |
||||||
|
|||||||
Гость_Galina |
|
|||
Unregistered |
Люди, а можно ли как то таскать из матлаба графику? Работаю через ком. Все что нашла:
COM Server Functions for the Visual Basic Client Execute Execute MATLAB command in server GetCharArray Get character array from server GetFullMatrix Get matrix from server MaximizeCommandWindow Display server window on Windows desktop MinimizeCommandWindow Minimize size of server window PutCharArray Store character array in server PutFullMatrix Store matrix in server Quit Terminate MATLAB server Но мне как всегда нужна графика. (((( "Помогите, кто может, кто может, помогите..." (с) |
|||
|
||||
remax |
|
|||
Доцент Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Прошу прощения, что поздно прочитал этот топик.
Самый простой способ обмена между Matlab и Delphi - это использовать обычные файлы. Например, массивы данных: DLMREAD DLMWRITE - это команды Matlab для чтения/записи массива из файла Write/Read - Это команды Delphi для чтения/записи массива из файла Работа осуществляется с текстовыми файлами. По умолчанию - разделитель между элементами - '; При работе с графикой - аналогичное решение, есть соответствующие команды для чтения/записи в файл картинок. К сожалению, по памяти я не помню эти команды Matlab, но при необходимости легко посмотреть. Это сообщение отредактировал(а) remax - 5.2.2006, 16:38 -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
Добро пожаловать в раздел "Другие языки" форума Vingrad! | |
|
Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)
Приятного времяпрепровождения! С уважением, Void, kemiisto . |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Другие языки | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |