Comportamento estranho no MATLAB em relação a eval ()

1

Considere o seguinte código

x = zeros(3,3);
eval(str3)
g = @(x) eval(str3)
g(x)
g(zeros(3,3))

O MATLAB avaliará eval(str3) como pretendido, mas reclamará dos outros dois que afirmam ser Undefined function for input arguments of type 'double' . Por quê?

    
por Markus Klyver 25.03.2017 / 04:07

1 resposta

0

Eu posso entender porque o Matlab lança um erro. str3 é indefinido em seu exemplo, mas a partir de sua descrição, posso fazer com que str3 seja definido em sua área de trabalho e contenha uma string. Na linha 3, você fez uma função que é independente de x que avalia o que foi str3 antes de executar a linha 3, sempre que g é chamado. Eu acho que sua linha 3 não reflete o que você pretendia.

Acho que o que você tenta fazer é algo ao longo das linhas:

    g = @(x) eval(x);
    g('x = zeros(3,3)')

Mas você não descreveu o que você pretendia alcançar. Por favor, forneça mais detalhes.

    
por 14.04.2017 / 13:48

Tags