Alguém tem experiência na criação de uma biblioteca compartilhada no MATLAB?

votos
9

Um pesquisador criou uma pequena simulação em MATLAB e queremos torná-lo acessível a outros. Meu plano é levar a simulação, limpar algumas coisas e transformá-lo em um conjunto de funções. Então eu pretendo compilá-lo em uma biblioteca C e usar SWIG para criar um wrapper Python. Nesse ponto eu deveria ser capaz de chamar a simulação de um pequeno aplicativo Django. Pelo menos eu espero que sim.

Eu tenho o plano certo? Tem mais alguém fez algo semelhante? você pode me informar se existem sérias armadilhas que eu não estou ciente de no momento?

Publicado 07/08/2008 em 19:47
fonte usuário
Em outras línguas...                            


4 respostas

votos
5

Uma coisa a lembrar é que o compilador Matlab realmente não compilar o código Matlab em instruções de máquina nativas. Ele simplesmente envolve-lo em um executável autônomo ou uma biblioteca com o seu próprio motor de tempo de execução que executa. Você seria capaz de executar o seu código sem Matlab instalado, e você seria capaz de interagir com outras línguas, mas ainda será interpretado código Matlab, então não haveria aumento de velocidade.

Respondeu 02/11/2009 em 04:43
fonte usuário

votos
3

Eu não vai ajudar muito, mas eu me lembro que eu era capaz de envolver uma simulação MATLAB em DLL e, em seguida, chamá-lo de um aplicativo de Delphi. Funcionou muito bem.

Respondeu 07/08/2008 em 21:57
fonte usuário

votos
2

Eu também tentar ctypes em primeiro lugar.

  1. Use o compilador Matlab para compilar o código em C.
  2. Compilar o código C num DLL.
  3. Use ctypes para carregar e chamar o código a partir desta DLL

O passo mais difícil é provavelmente 1, mas se você já sabe Matlab e ter usado o compilador Matlab, você não deve ter problemas sérios com ele.

Respondeu 26/09/2008 em 10:55
fonte usuário

votos
1

Talvez tente ctypes em vez de SWIG. Se ele tiver sido incluído como parte do Python 2.5, então ele deve ser bom :-)

Respondeu 19/08/2008 em 14:51
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more