Questa funzione può essere uno strumento eccellente, ma il suo uso dovrebbe essere riservato a casi eccezionali. Se possibile, dovrebbero essere scelte opzioni alternative, poiché il loro utilizzo può causare diversi inconvenienti e problemi durante l'esecuzione.
Di seguito, diamo uno sguardo dettagliato alla sintassi, agli argomenti di input e output e ai dati che questa funzione accetta. Troverai anche una descrizione dettagliata di questa funzione e delle sue soluzioni, con frammenti di codice e immagini che spiegano come usarla passo dopo passo.
Sintassi della funzione di Eval Matlab
Valuta ('Exp')
Descrizione della funzione MATLAB EVAL
La funzione Eval di MATLAB valuta una determinata espressione in "Exp" e restituisce il risultato in "A". Concettualmente, la funzione valuta () converte il testo digitato nella stringa di input in codice che esegue e restituisce i risultati. Questa funzione fornisce un'eccellente flessibilità perché consente più risultati di output e i suoi argomenti di input possono valutare espressioni e funzioni dalla libreria MATLAB e quelle create dal programmatore. L'argomento di input a questa funzione deve essere una stringa contenente l'espressione esplicita dell'espressione da valutare o implicitamente da un vettore di carattere. Quando chiamiamo la funzione Eval () con espressioni che restituiscono più risultati, devono essere racchiuse in parentesi quadrate e separate da virgole.
Quando si utilizza Eval () per valutare espressioni o funzioni non precedentemente specificate dal programmatore, ricorda che qualsiasi cosa immessa come una stringa diventa parte del codice. La gestione impropria di questo input può portare a errori o eccezioni.
Nei seguenti esempi, valuteremo varie funzioni e espressioni di input con la funzione valuta () e implementeremo il loro uso. Ti mostreremo anche soluzioni alternative che ti consentono di ottenere gli stessi risultati senza utilizzare questa funzione, che fornisce soluzioni alternative ed è molto flessibile. Tuttavia, questo può anche portare a significativi svantaggi.
Come valutare una semplice espressione con la funzione Matlab eval ()
Successivamente, vedremo diversi esempi semplici in cui implementiamo la funzione Eval per valutare espressioni o chiamate a semplici funzioni. Il seguente snippet valuta un'espressione di divisione di a b.
a = 23;
b = 5;
Eval ('A ./ B' )
In questo caso, valuta () restituisce il risultato della divisione a b.
Nel seguente frammento, valuta () valuta un'espressione che utilizza una funzione di libreria MATLAB per produrre un array di quelli:
a = 5;
Valuta ('One (a)')
Questi sono i modi più semplici per utilizzare la funzione. Come possiamo vedere, il carattere stringa che inviamo negli argomenti di input viene convertito in righe di codice eseguite per restituire un risultato.
Successivamente, creeremo un'applicazione che valuta le espressioni e visualizza i risultati sullo schermo.
Applicazione per la valutazione delle espressioni con la funzione Eval di MATLAB
In questo esempio, creeremo una semplice applicazione della console per valutare le espressioni con Eval (). Questo semplice strumento può analizzare rapidamente e valutare le espressioni che specifichiamo come argomenti di input quando si utilizza questa funzione. Questa applicazione è composta da quattro righe di codice. È un ciclo infinito che usa prima la funzione input () per inserire la stringa che sarà l'espressione da valutare. Questa stringa viene inviata come argomento di input a valuta ().
Di seguito è riportato il codice per questa applicazione. Crea uno script, incolla questo codice e premi Esegui. Quindi, al prompt, digita l'espressione che si desidera valutare e premere Invio. Ricorda che valuta () accetta solo stringhe nei suoi argomenti di input, quindi le espressioni dovrebbero essere racchiuse in singoli citazioni. Per chiudere l'applicazione, premere Ctrl+C.
mentre 1
exp_1 = input ('Immettere un'espressione. Per uscire dall'applicazione premere Ctrl+C.');
Valuta (exp_1)
FINE
Come mostrato nella figura seguente, questa applicazione utilizza la funzione valuta () e restituisce il risultato dell'espressione che inseriamo tramite la console di comando:
Rischi di utilizzare la funzione Valuta () in MATLAB
La funzione Valuta () offre aspetti interessanti in termini di flessibilità. Tuttavia, può anche avere diversi inconvenienti che generano errori, gravi eccezioni nel sistema o risultati errati, quindi il suo uso dovrebbe essere limitato. Alternative che forniscono più sicurezza e robustezza dovrebbero invece essere implementati.
Come abbiamo visto nella descrizione e negli esempi precedenti, qualsiasi testo che inseriamo sotto forma di una stringa negli argomenti di input di Eval () verrà convertito in codice ed eseguito, che è concettualmente un gateway o un'interfaccia di input per immettere i comandi utente in un programma già in esecuzione. Dobbiamo prestare particolare attenzione a questo perché se lasciamo questa porta aperta, non abbiamo un controllo completo o predeterminato su ciò che verrà eseguito nel nostro sistema in primo luogo. Inoltre, le espressioni possono spesso essere in conflitto con i nomi di variabili già definite e produrre risultati errati o errori di sistema. Questi errori possono verificarsi anche a causa di incompatibilità nei tipi di dati tra le variabili dell'espressione da valutare e le variabili definite nel programma.
Alternative alla funzione di valutazione MATLAB
Esistono diverse alternative per evitare l'utilizzo della funzione Valuta (). Uno è quello di creare una funzione che risolva l'espressione invece di valutarla con Eval (). Questo ci dà la possibilità di lavorare con variabili già preimpostate e anche di controllare quale tipo di dati dovrebbero accettare le variabili di questa espressione, il che impedisce errori o eccezioni.
Conclusione
In questo articolo, ti abbiamo mostrato come utilizzare la funzione Eval () per valutare le stringhe e convertirle in espressioni eseguibili che restituiscono un risultato. Ti abbiamo anche mostrato alcuni dei problemi che possono derivare dall'uso di questa funzione e dalle alternative che Matlab offre per ottenere lo stesso risultato utilizzando metodi più affidabili. Per una spiegazione migliore, abbiamo creato alcuni esempi pratici che includono frammenti del codice di immagine che mostrano l'implementazione di questa funzione nell'ambiente MATLAB. Abbiamo anche creato un'applicazione pratica console che puoi utilizzare per testare le espressioni che useremo come argomenti di input durante l'implementazione di questa funzione.