2017-08-30 2 views
0

J'ai converti mon fichier .m en une application autonome à l'aide de deploytool.Obtenir une sortie d'application standalone de matlab à partir de php

Maintenant, je veux exécuter mon application et obtenir les sorties en utilisant PHP. Je peux exécuter mon application sur cmd. Et il va retourner les sorties et imprimer. Mais je ne peux pas obtenir les sorties de PHP.

c'est le fichier principal de mon application autonome:

function [onsets,pitch,endpoint] = matxtwavtomidi(input_args) 

input=strsplit(input_args); 
[s wavFs] = audioread(input{1}); 
[onsets,pitch,endpoint]=txtwavtomidi(s); 

end 

ceci est le résultat que je reçois de cmd:

C:\Users\user> START /WAIT D:/java/matlab/matxtwavtomidi.exe D:/song.wav 

onsets = 
    1.7183 
    1.7183 
    2.3220 
    2.3220 

pitch = 
    60 
    72 
    62 
    74 

endpoint = 
    1.8576 
    1.9040 
    3.0650 
    2.4149 

ceci est mon PHP:

<?php 
$stringcmd= "START /WAIT D:/java/matlab/matxtwavtomidi.exe "; 
$stringwav = "D:/song.wav"; 

exec($stringcmd.$stringwav, $output, $return_var); 

echo $stringcmd.$stringwav; 
var_dump($output); 
var_dump($return_var); 

?> 

cette est le résultat de php:

START /WAIT D:/java/matlab/matxtwavtomidi.exe D:/song.wav 
array(0) { } 
int(0) 

Chaque fois que je lance l'application sur cmd, elle affiche toujours l'image de l'icône de l'application au milieu de l'écran pendant 2 secondes puis disparaît.

Et quand j'ai exécuté mon PHP, il a montré l'image de l'icône, donc je pense qu'il a fait fonctionner l'application. Et il n'y a pas d'erreur dans php_error_log et apache error_log.

Mon problème est, pourquoi mon PHP ne peut-il pas obtenir les sorties de l'application à partir de cmd? Et comment résoudre ce problème?

(Désolé pour mon pauvre anglais ..)

Répondre

0

Une bonne solution est d'écrire vos données de Matlab dans un fichier .txt, puis lire ce fichier à partir de votre côté serveur .. Hope it helps