2010-11-27 3 views
1

Я использую Windows XP, а версия Matlab - 7.10.0. У меня есть пакет levmar (Левенберг Марквардт) от http://www.ics.forth.gr/~lourakis/levmar/levmar-2.5.tgzКак построить левмар с помощью MATLAB?

В файле README, говорят нам собрать в MATLAB с помощью Mex с помощью следующей команды: MEX -DHAVE_LAPACK -I .. -О -L - L levmar.c -llevmar -lclapack -lblas -lf2c.

Я скачал lapack.lib, blas.lib и f2c.lib для окон

UPDATE: оригинальный ошибка был решен после того, как я построил файл проекта VC, приведенной в пакете , Но теперь есть некоторые сообщения об ошибках, как:

levmar.lib(misc.obj) : error LNK2019: unresolved external symbol _dgemm_ referenced in function _dlevmar_trans_mat_mat_mult 
+0

Вам необходимо связать свои библиотеки с проектом. Просто google для 'ошибки LNK2019: неразрешенный внешний символ'. – zellus 2010-11-27 09:04:24

ответ

1

Вы создали файл с MEX-функции шлюза? Вы не можете просто скомпилировать c-функцию для Matlab; вам нужно немного потрудиться, чтобы позаботиться о вводе-выводе между Matlab и c-кодом.

Если вы выполните шаги, описанные в this document, вы должны все исправить.

+0

Спасибо за ссылку о файлах mex – 2010-11-27 05:31:11

0

Я просто вычислил это после поиска и заметил, что пакет levmar включает файл проекта vc, который мне нужно было создать, и создал файл под названием levmar.lib. Но теперь я получаю некоторые ошибки, которые включают в себя такие сообщения, как «неспособность разрешить внешние символы».

1

Возможно, вы найдете immoptibox, в котором также находится алгоритм Левенберга-Марквардта.

+0

Я мог бы рассмотреть альтернативу в ближайшем будущем. – 2010-11-27 08:35:12

Смежные вопросы