2008-11-26 6 views
12

Un collègue et moi avons passé quelques années à développer une application Matlab vraiment cool, MDLcompress. Dans Matlab, je peux taper "MDLcompress ('filename.txt')" et il me dira toutes sortes de trucs vraiment cool sur le contenu de filename.txt. Nous aimerions permettre à d'autres personnes d'utiliser MDLcompress sans télécharger le code, en installant Matlab, etc. Idéalement, nous aurions une simple page web où ils sélectionneraient un fichier de leur machine, ils seraient téléchargés sur mon poste de travail (ce qui est déjà fait). lancer Tomcat à d'autres fins, si cela rend les choses plus faciles), a lancé un processus sur le modèle de "matlab < MDLcompress.m filename.txt> results.txt", puis affiché results.txt dans leur navigateur ou a montré un lien pour laisser les télécharger.Existe-t-il un moyen facile de fournir une application Web ou un service Web basé sur Matlab?

Problème, mes compétences Matlab dépassent de loin mes compétences en ligne. Google a 100 tutoriels génériques, mais rien de plus simple que je veux, du moins pas spécifique à Matlab.

Merci à l'avance

Répondre

7

Si vous êtes compétent dans la plupart Matlab vous pouvez écrire application web avec MATLAB MATLAB Web Server Edit: Matlab Web Server est supprimé, il est donc pas pour vous si vous utilisez la version récente de Matlab. Peut être this tutorial aidera à créer un module CGI à partir du code Matlab.

+0

Le didacticiel auquel vous avez accédé correspond presque exactement à ce que je cherchais. Maintenant, j'ai juste besoin de comprendre comment faire fonctionner CGI, mais il y a beaucoup de choses en ligne pour le faire. Merci - pl – PlexLuthor

+0

Vous êtes les bienvenus :) Allez-vous rendre votre application publique? –

+0

Quant à la rendre publique, probablement pas pour un moment. Je travaille pour une grande société, et ils me laissent publier l'algorithme en pseudo-code, mais ne le rendent pas disponible, même en vente. – PlexLuthor

3

Un moyen possible est de compile the matlab code en C, puis make the C file into an apache module, et utiliser un serveur apache. Je ne sais pas à quel point c'est compliqué, mais ça peut marcher.

+0

Eh bien, une fois qu'il est compilé en c, il existe des possibilités infinies quant à la façon de l'exécuter à partir d'une page Web. La meilleure façon dans le cas actuel serait d'utiliser php ou python et d'exécuter l'application c à partir de ce code. – Loki

+0

C'est certainement le chemin à parcourir. Les fichiers Matlab peuvent être compilés en programmes, alors vous pouvez lier le programme dans Tomcat ou Apache. Cette partie est au-delà de moi, mais cela ne devrait pas poser de réel problème. – Karl

3

Selon les balises, je suppose que vous essayez de déployer sur Tomcat ou similaire. La méthode la plus simple consiste à utiliser MATLAB Builder JA pour créer un wrapper Java pour votre code, puis utiliser les outils standard pour déployer Java en tant que service Web.

1

Nous avons développé une boîte à outils appelée Modelit Webserver Toolbox qui devrait vous permettre de faire cela. Nous l'utilisons nous-mêmes pour exécuter un algorithme de routage implémenté dans Matlab pour un planificateur d'itinéraire en ligne (le lien est sur notre site). Vous pouvez utiliser la boîte à outils conjointement avec Tomcat et Matlab (2006b et versions ultérieures) ou un exécutable Matlab compilé. La boîte à outils fournit également un mécanisme pour exécuter plusieurs travaux en parallèle.

3

Si vous pouvez vous permettre de perdre certaines des fonctionnalités propriétaires les plus puissantes de Matlab, il existe plusieurs moteurs de calcul numérique open-source qui utilisent une syntaxe principalement compatible avec celle de Matlab. L'un des plus matures est GNU Octave.

Il existe plusieurs exemples d'interfaces Octave en ligne. Octave Online est une nouvelle interface qui prend en charge une invite en direct et un éditeur en ligne. Je suis membre de l'équipe qui développe Octave Online. Vous pouvez trouver plus d'exemples d'interfaces Octave en ligne sur the Octave wiki. The Octave mailing list est une bonne ressource pour les projets Octave en ligne antérieurs.

Questions connexes