Блог им. Kot_Begemot

Open Source : Lua - MatLab Connector (3)



Краткое описание :

Библиотека Matlab2Lua  позволяет интегрировать Lua скрипты и Маtrix Laboratory Engine.


Полное описание :

Библиотека позволяет Lua и Матлаб обмениваться данными при помощи функций :

lua variable = Get( string Matlab varname );  — получение переменной из среды матлаб по имени, поддерживаются Double Array, Cell Array of Strings, Double Value, Integer Value, String Value. Возвращает -1 в случае неудачи.

int Eval ( string MatlabСommand ) — передает команду в MatLab Command Line, в качестве переменной типа string; возвращает -1 в случае неудачи, и 1 в случае успеха.

int PutVal( string Name, string/number Value) — передает в Матлаб значение Value типа string или number под именем Name. 1- успех, -1 — неудача.

int PutDouble( string Name, table T) — передает в Матлаб под именем Name таблицу Луа, заполненную численными значениями. Ответ — аналогичный.

int PutCell( string Name, table T)  — передает в Матлаб под именем Name таблицу Луа, заполненную строковыми или численными значениями, подлежащими преобразованию в строки. Ответ — аналогичный.


Требует запущенного Matlab Engine в качестве Automation Server (MatLab-side) :

server=actxserver('matlab.application.single'); server.Execute(' enableservice (''AutomationServer'', true)');

Файлы :

1. Скомпилированная под win64 библиотека Matlab2Lua.dll с «встроенной» (статической) линковкой. (MinGW64, CodeBlocks)
2. Тестовый скрипт Lua Test.Lua, демонстрирующий работу библиотеки
3. Открытый код Cpp main.cpp (без проекта). 



Лицензия :

Автор: Кот-Бегемот
Благодарности: 3Qu
Лицензия: All what you want


Ссылки проекта :


1. Cpp DLL для Lua
2. Cpp и Matlab Engine
3. Lua API и Сpp 


Используемые модули и библиотеки (для сборки проекта):

Поставка Матлаб:

1. Библиотека libeng.lib, отвечающая за управление интерфейсом Matlab   (matlabroot)/extern/lib/win64/microsoft  
2. Библиотека libmx.lib, отвечающая за конвертацию данных Matlab — Cpp   (matlabroot)/extern/lib/win64/microsoft
3. Файл заголовок engine.h, описывающий доступные пользователю функции.  (matlabroot)/extern/include/win64/microsoft
4. Библиотека libeng.dll, отвечающая за управление интерфейсом Matlab
.  (matlabroot)/bin/win64

* директории указаны соответственно 64-битной win OS

Поставка Lua :

1. lua5.1.dll или аналог
2. luaxlib.h
3. lua.h

* Находятся в открытом доступе, например : http://luabinaries.sourceforge.net/download.html
  • обсудить на форуме:
  • Quik Lua
★10
ЗакрепитьКомментарий закреплен пользователем Kot_Begemot
Изменения от 20.04.2020 :

Библиотека протестирована в рабочем режиме на Quick 8.4.1.6.

Добавлена возможность передачи одномерных Lua таблиц как вектор-столбцов.
avatar

Kot_Begemot

Обозначьте мотивацию для чего используется библиотека, какие цели у всего проекта
avatar

Митин Артём

Митин Артём, для использования торговых роботов, написанных на Матлаб 
avatar

Kot_Begemot

Это круто! Ни разу не видел торгового робота на Матлабе
avatar

Mrak


....все тэги
2010-2020
UPDONW