2010-07-26 6 views
1

Existe-t-il un moyen de renvoyer un tableau perl à MATLAB? Ou dois-je juste retourner une chaîne et l'analyser? J'utilise un appel de MATLAB à un script perl pour interfacer avec une base de données MySQL. Après avoir obtenu les résultats d'une requête, je veux la renvoyer à MATLAB.Renvoyer le tableau perl à MATLAB

EDIT: J'utilise une version modifiée de perl.m pour appeler le script Perl. Il appelle la version de perl avec DBI que j'ai installé, plutôt que la copie fournie avec MATLAB.

j'ai changé la ligne 65 du perl.m de

perlCmd = fullfile(matlabroot, 'sys\perl\win32\bin\'); 

à

perlCmd = 'C:\Perl64\'; 
+0

Veuillez inclure un certain code pour la façon dont vous vous reliez entre Matlab et Perl. – Ether

+0

J'utilise le fichier perl.m intégré de Matlab. Il fait juste un appel de dos à perl et renvoie le résultat. – Doresoom

+1

Y at-il une raison particulière pour laquelle vous devez utiliser perl? La connexion MATLAB avec MySQL est beaucoup plus simple avec JDBC et renvoie tous les résultats de la requête directement dans l'espace de travail MATLAB. – Adrian

Répondre

1

comment vous appelez votre script perl? Si vous effectuez un appel système, vous pouvez uniquement renvoyer la sortie de chaîne.

vous pouvez regarder dans l'emballage de votre appel dans un fichier MEX, ou d'écrire .mat fichiers de votre perl, mais je pense que l'analyse des chaînes peut être plus facile, en particulier pour les petits tableaux

EDIT

réflexion ce que je l'ai fait une fois dans une situation similaire (dû transférer des données dans Matlab) était de générer un fichier .m qui crée une matrice de Matlab, à savoir

array = [ 
      1, 2, 3; 
      4, 5, 6; 
     ]; 

et enregistrer sur le disque. quand le programme était fini j'ai simplement appelé le m-dossier pour obtenir les données dans mon espace de travail

+0

J'ai très peu d'expérience avec perl, et beaucoup plus d'expérience avec MATLAB, donc je préfère faire la majeure partie de ma programmation dans l'environnement que je connais. – Doresoom

+0

De quelle taille sommes-nous? passe par des cordes infaisables? – second

+0

Mes requêtes renvoyées peuvent contenir plusieurs milliers de points de données. Je ne pense pas que cela devrait poser problème, mais je n'ai pas encore étudié la performance. – Doresoom

Questions connexes