Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86

    Eseguire funzione matlab

    Salve,

    mi servirebbe il vostro aiuto in merito a un problema che non so come risolvere,in pratica da php devo far eseguire una funzione matlab che ho salvato nella stessa cartella in cui si trova il file php.Tale funzione deve restituire dei valori.

    Ho provato con exec(),system e passthru() ma non mi restituisce niente.

    Esempio banale:

    funzione matlab prova.m

    function [a]=prova
    a=5;
    end

    che ritorna il valore 5

    in php ho provato con il comando

    exec('"C:\xampp\htdocs\sitoweb\prova.m"',$ret) ;

    echo $ret;
    e mi stampa solo Array

    In cosa sbaglio!!!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Prova a stampare
    print_r($ret);

    cosa stampa?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86
    Stampa Array()

  4. #4
    Ciao, purtroppo non me ne intendo di matlab, ma php non può eseguire una funzione che non sia scritta in php, o almeno non nel modo tradizionale.

    Le possibilità che hai sono 2:

    1) Traduci la tua funzione in php, ad esempio:

    Codice PHP:
    <?php
    function matlab $numero ) {
       echo 
    $numero;
    }
    in questo modo ti basterà richiamare la funzione per stampare a video il risultato:

    Codice PHP:
    <?php matlab(5); ?>
    Questo stamperà 5.


    2) La seconda possibilità è più laboriosa, si tratterebbe di usare l'interprete di matlab tramite php. Per fare questo devi innanzitutto avere l'interprete, e su questo purtroppo non so bene come aiutarti. Però posso dirti che se hai un interprete matlab chiamato ad esempio matlab.exe, con php puoi usare la funzione exec() o shell_exec() per eseguire comandi da shell.

    Ho fatto una ricerca al volo e ho trovato questo link: http://www.mathworks.it/help/techdoc...abwindows.html

    Sembrerebbe che con questo comando

    codice:
    matlab -r "statement"
    puoi startare MATLAB e fargli eseguire un'operazione.
    Prova innanzitutto ad eseguire un comando dalla shell di windows (ho dato per scontato che tu abbia windows, ma il comando dovrebbe essere lo stesso in tutte le piattaforme) e vedi cosa ti restituisce. Se ottieni il risultato desiderato, in php dovresti poter ottenere lo stesso valore con questo codice:

    Codice PHP:
    <?php
    $command 
    "matlab -r <scrivi qui l'espressione matlab da eseguire>";
    $value exec($command);
    var_dump($value);
    Prova e fammi sapere. Ciao, spero di esserti stato di aiuto!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86
    Mi si apre matlab con il risultato della funzione ma nella pagina web mi stampa string(0) "" invece di 5 ,per il resto funziona grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.