Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [MATLAB] Нужен обмен MATlab-Delphi - как? 
:(
    Опции темы
СТАРИК
Дата 10.6.2004, 14:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть возможность получить(передать)данные DELPHI-MATLAB?
  Вверх
Guest
Дата 10.6.2004, 16:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Насколько я помню, Matlab может работать с Фортраном и С++, т.е. можно создавать dll'ки на эти языках, которые работают с Matlab'ом через указанный в документации API. Еще Matlab позволяет создавать объекты Java и наверное управлять ими (точно не знаю, не разбирался).
Но может быть можно работать с Matlab'ом через COM.
А вообще объясни подробнее, что тебе нужно.
  Вверх
Guest
Дата 10.6.2004, 17:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как в EXCELnkе сделаны вызовы по запускам матлаб комманд
и GET и PUT ?
Или как сделать так чтобы работа DELPHI -программы управляла
работой (вызовом комманд и получением результатов и тп.) МАТЛАБ.?
  Вверх
youri
Дата 11.6.2004, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата
Как в EXCELnkе сделаны вызовы по запускам матлаб комманд
и GET и PUT ?

Если ты объяснишь, что такое EXCELnkе, то я попробую подумать
Цитата
Или как сделать так чтобы работа DELPHI -программы управляла
работой (вызовом комманд и получением результатов и тп.) МАТЛАБ.?

Если тебя интересует управление Matlab'а программой, то, если верить документации, Matlab'ом можно управлять с помощью программы на C и на Fortran'е (через COM) sad.gif . Так что если ты не настаиваешь на использовании Delphi, то я думаю что смогу помочь тебе в отношении C (1).
Хотя мне кажется я видел документацию на сайте Matlab по созданию COM объектов с помощью Matlab'а - может быть тогда работать с этими объектами можно будет из Delphi (2). Еще вроде можно компилировать Matlab'овские файлы на C/C++, и в результате создавать exe-шники, которые можно будет вызывать из Delphi для выполнения каких-либо функций (3).
Определись какой вариант тебе больше нравиться (1, 2, 3)
PM   Вверх
СТАРИК
Дата 11.6.2004, 10:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 11.6.2004, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата
P.S Вообще библиотеки поддержки matlab в DELPHI существуют или нет?

Не слышал
По поводу остального: чуть позже
PM   Вверх
devmstr
Дата 11.6.2004, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: нет
Всего: 11



А попробуй через ActiveX. Должно получиться


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
СТАРИК
Дата 11.6.2004, 17:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ActiveX ???
Пожалуйста поточнее !Как это делается ?
Буду очень признателен!

Спасибо заранее!

  Вверх
youri
Дата 12.6.2004, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Создай m-файл, с нужной тебе функцией. Чтобы сделать из него приложение, дай команду
Код
mcc -m myfunction.m

а чтобы сделать dll
Код
mcc -l myfunction.m

Так сказано в документации. Но у меня ошибки выдает
(Не достаточно памяти для переменных среды, Имя команды или файла указано неправильно).
Надо будет разобраться. Но ты попробуй и скажи что у тебя получилось

Кстати, тебя скорее должна интересовать dll, чтобы ты смог воспользоваться ей в
другом приложении. Как воспользовавться exe-шником, пока что не знаю. Правда не факт,
что таким методом у меня можно создать dll, у меня mcc ключ -l не поддерживает
(может потому, что у меня Matlab Release 12)

PM   Вверх
youri
Дата 12.6.2004, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Скажи, кстати, какой у тебя release of matlab

PM   Вверх
СТАРИК
Дата 14.6.2004, 17:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я в ABOUTе Matlabа вижу Version 5.3.0.10183 (R11) от 21 января 1999 г.
,а его MCC- компилятор версии 2.0 и у него нужный ключ -x
создает DLL-ку ,С-исходник,заголовочный H-файл и еще один MEX-файл.
Но, что интересно матлабовские m-файлы-функции со многими выходными
параметрами (я их называю процедурами)
до конца не транслируются ( останавливается после создания *.obj т.е
не линкуется выбрасывает кучу (несколько страниц) мусора процесса
ошибочной линковки!)

Попробую сейчас использовать DLL-ку обычным образом в Дельфи.

Спасибо ВСЕМ за ВСЕ!
Буду молиться богу за ваши успехи.

  Вверх
youri
Дата 14.6.2004, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



По поводу релиза - он у тебя 11 (R11)
А на счет mex-файла - странно, по идее файлов с таким расширением не должно быть (под Windows это должна быть dll)
PM   Вверх
youri
Дата 15.6.2004, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Кстати, может ты свой email оставишь, поделились бы опытом работы в Matlab?
PM   Вверх
СТАРИК
Дата 15.6.2004, 08:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Yuori Ты прав! я спутал ! файл с расширением *.С а имя Myfun_mex.c

ТЕПЕРЬ ДРУГАЯ ПРОБЛЕМА-помоги пожалуйста-найти таблицу соответствия типов C++---Delphi ? а также базовые типы Wndows
Кроме того имеется -ли программа переконвертации заголовочного
H-файла C на *.pas чтобы вручную не извращаться каждый раз.




  Вверх
youri
Дата 15.6.2004, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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-файла C на *.pas

По поводу программы, которая конвертирует h-файлы в pas-файлы, не знаю

Цитата
чтобы вручную не извращаться каждый раз.

Основная проблема тут состоит в том, чтобы перевести на Delphi структуры данных и заголовки функций, которые понадобятся твоей программе не Delphi (тебе ведь не надо подключать созданные c-файлы к твоей программе на Delphi) - а они могут меняться только с изменением версии MatLab'а и то вряд ли.

Цитата
помоги пожалуйста-найти таблицу соответствия типов C++---Delphi ?

Скажи какие типы данных тебя интересуют и я, может, что-нибудь придумаю.

Приведи пример какой-нибудь функции MatLab'а, которую ты хочешь вызывать из Delphi.

В MatLab'е есть такая штука, как MatLab COM Builder. Может, с помощью ее можно облегчить процесс доступа к функциям MatLab'а.
PM   Вверх
Гость_Galina
Дата 3.11.2005, 12:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
  Дата 5.2.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: нет
Всего: 5



Прошу прощения, что поздно прочитал этот топик.

Самый простой способ обмена между Matlab и Delphi - это использовать обычные файлы.

Например, массивы данных:

DLMREAD DLMWRITE - это команды Matlab для чтения/записи массива из файла

Write/Read - Это команды Delphi для чтения/записи массива из файла

Работа осуществляется с текстовыми файлами. По умолчанию - разделитель между элементами - ';
smile

При работе с графикой - аналогичное решение, есть соответствующие команды для чтения/записи в файл картинок. К сожалению, по памяти я не помню эти команды Matlab, но при необходимости легко посмотреть.

Это сообщение отредактировал(а) remax - 5.2.2006, 16:38


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.1778 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.