Eval em Matlab

Eval em Matlab
Este artigo explicará como usar a função Eval () no MATLAB.

Esta função pode ser uma excelente ferramenta, mas seu uso deve ser reservado para casos excepcionais. Se possível, as opções alternativas devem ser escolhidas, pois seu uso pode causar vários inconvenientes e problemas durante a execução.

Abaixo, examinamos detalhadamente os argumentos de sintaxe, entrada e saída, e os dados que essa função aceita. Você também encontrará uma descrição detalhada dessa função e suas soluções, com trechos de código e imagens explicando como usá -la passo a passo.

Sintaxe da função de avaliação matlab

Eval ('Exp')

Descrição da função Matlab Eval

A função de avaliação do Matlab avalia uma dada expressão em "exp" e retorna o resultado em "a". Conceitualmente, a função Eval () converte o texto que você digita na sequência de entrada no código que executa e retorna resultados. Esta função oferece excelente flexibilidade porque permite vários resultados de saída e seus argumentos de entrada podem avaliar expressões e funções da biblioteca Matlab e aquelas criadas pelo programador. O argumento de entrada para esta função deve ser uma string contendo a expressão explícita da expressão a ser avaliada ou implicitamente por um vetor de personagem. Quando chamamos a função Eval () com expressões que retornam vários resultados, eles devem ser fechados entre colchetes e separados por vírgulas.

Ao usar avaliar () para avaliar expressões ou funções não especificadas anteriormente pelo programador, lembre -se de que qualquer coisa inserida como uma string se torna parte do código. O manuseio inadequado dessa entrada pode levar a erros ou exceções.

Nos exemplos a seguir, avaliaremos várias funções e expressões de entrada com a função Eval () e implementarão seu uso. Também mostraremos soluções alternativas que permitem obter os mesmos resultados sem usar essa função, que fornece soluções alternativas e é muito flexível. No entanto, isso também pode levar a desvantagens significativas.

Como avaliar uma expressão simples com função MATLAB EVAL ()

Em seguida, veremos vários exemplos simples em que implementamos a função de avaliação para avaliar expressões ou chamadas para funções simples. O snippet seguinte avalia uma expressão de divisão de A por B.

a = 23;
b = 5;
Eval ('A ./ b ')


Nesse caso, EVALL () retorna o resultado de dividir a por b.


No snippet a seguir, avalia uma expressão que usa uma função da biblioteca do MATLAB para produzir uma matriz:

a = 5;
Eval ('(a)')


Essas são as maneiras mais simples de usar a função. Como podemos ver, o caractere da string que enviamos nos argumentos de entrada é convertido em linhas de código executadas para retornar um resultado.


Em seguida, criaremos um aplicativo que avalie expressões e exibe os resultados na tela.

Aplicação para avaliar expressões com a função de avaliação do MATLAB

Neste exemplo, criaremos um aplicativo de console simples para avaliar expressões com avaliar (). Esta ferramenta simples pode analisar rapidamente e avaliar as expressões que especificamos como argumentos de entrada ao usar esta função. Este aplicativo consiste em quatro linhas de código. É um loop infinito que primeiro usa a função input () para inserir a string que será a expressão a ser avaliada. Esta string é enviada como um argumento de entrada para avaliar ().

Abaixo está o código para este aplicativo. Crie um script, cole este código e pressione Run. Então, no prompt, digite a expressão que você deseja avaliar e pressionar Enter. Lembre -se de que EVALL () aceita apenas strings em seus argumentos de entrada; portanto, as expressões devem ser fechadas em citações únicas. Para fechar o aplicativo, pressione Ctrl+C.

enquanto 1
exp_1 = input ('insira uma expressão. Para sair do aplicativo, pressione Ctrl+C.');
Eval (Exp_1)
fim


Conforme mostrado na figura a seguir, este aplicativo usa a função Eval () e retorna o resultado da expressão que entramos através do console de comando:

Riscos para usar a função EVALL () no MATLAB

A função Eval () oferece aspectos interessantes em termos de flexibilidade. Ainda assim, ele também pode ter várias desvantagens que geram erros, exceções sérias no sistema ou resultados errôneos; portanto, seu uso deve ser limitado. Alternativas que fornecem mais segurança e robustez devem ser implementadas em vez disso.

Como vimos na descrição e em exemplos anteriores, qualquer texto que digamos na forma de uma string nos argumentos de entrada de avaliar () será convertido em código e executado, que é conceitualmente um gateway ou interface de entrada para inserir comandos de usuário em um programa já em execução. Precisamos prestar atenção especial a isso, porque se deixarmos essa porta aberta, não temos controle completo ou predeterminado sobre o que será executado em nosso sistema em algum momento em primeiro lugar. Além disso, as expressões geralmente podem entrar em conflito com os nomes de variáveis ​​já definidas e produzir resultados incorretos ou erros do sistema. Esses erros também podem ocorrer devido a incompatibilidades nos tipos de dados entre as variáveis ​​da expressão que está sendo avaliada e as variáveis ​​definidas no programa.

Alternativas à função de avaliação do MATLAB

Existem várias alternativas para evitar o uso da função Eval (). Uma é criar uma função que resolve a expressão em vez de avaliá -la com EVALL (). Isso nos dá a possibilidade de trabalhar com variáveis ​​já predefinidas e também para controlar que tipo de dados as variáveis ​​dessa expressão devem aceitar, o que impede erros ou exceções.

Conclusão

Neste artigo, mostramos como usar a função Eval () para avaliar strings e convertê -las em expressões executáveis ​​que retornam um resultado. Também mostramos alguns dos problemas que podem surgir do uso dessa função e das alternativas que o MATLAB oferece para alcançar o mesmo resultado usando métodos mais confiáveis. Para uma melhor explicação, criamos alguns exemplos práticos que incluem fragmentos do código da imagem que mostram a implementação desta função no ambiente MATLAB. Também criamos um aplicativo de console prático que você pode usar para testar as expressões que usaremos como argumentos de entrada ao implementar esta função.