MySQL и Matlab - PullRequest
       33

MySQL и Matlab

4 голосов
/ 19 марта 2010

Я хочу взаимодействовать с базой данных MySQL из Matlab.
Я нашел mysql «библиотеку» для matlab здесь и то же самое для mathworks .

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

Я не знаком с компилятором mex или с компиляцией внешних модулей для Matlab.
Я что-то упускаю тривиально? Где должна быть Dll?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 19 марта 2010

Ссылка на dll устарела.

Когда вы компилируете mex-функцию в Windows, вы компилируете ее как dll (не .exe). Таким образом, скомпилированные mex-функции имели расширение .dll. Мекс-функции с расширениями .dll по-прежнему работают, но есть предупреждение, что в будущем это может прекратиться.

Когда пришла 64-битная Windows, TheMathWorks нужен был способ, чтобы люди могли скомпилировать одну и ту же mex-функцию для Win32 и Win64, поэтому они изменили расширение на .mexw32 и .mexw64 соответственно. По-видимому, они не обновили документацию полностью.

4 голосов
/ 19 марта 2010

Я бы порекомендовал использовать java для соединения MATLAB и MySQL (или любой другой БД, если требуется).

Соединитель базы данных Java прост в настройке. Я создал простой Java-класс для подключения к базе данных - см. предыдущую публикацию для получения грубого, но рабочего решения.

Код MATLAB работает, как указано

% include java class
import Jam.ConnectToDatabase

% set up database connection info
userName='myName';
userPassword='myPassword';
databaseUrl='jdbc:mysql://glnd2818898.internal.net/2000';

% create java class instance and open connection to the database
ctd = ConnectToDatabase;
ctd.openConnection(userName, userPassword, databaseUrl)

Когда соединение открыто, я могу использовать методы java для отправки запросов SQL, создания таблиц, вставки данных и т. Д. Я никогда раньше не использовал java, но я скачал Netbeans , и меня не стало.

0 голосов
/ 19 марта 2010

ОК, вот решение моей проблемы.
Компиляция генерирует файл mex32 (32 - потому что я скомпилировал его в 32-битной системе). Вы можете проверить выходной файл компиляции, запустив mexext. Итак, очевидно, что файл mex32 является скомпилированной версией файла C.
Как только я поместил файл в каталог, который находится в пути Matlab, он работал.

Я полагаю, что ссылка на Dll в приведенной мной ссылке устарела или неверна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...