Comportamiento extraño en MATLAB con respecto a eval ()


1

Considere el siguiente código

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

MATLAB evaluará eval(str3) según lo previsto, pero se quejan de los otros dos que afirman que son Undefined function for input arguments of type 'double'. ¿Por qué?

Respuestas:


0

Puedo entender por qué Matlab arroja un error. str3 no está definido en su ejemplo, pero a partir de su descripción, puedo hacer eso str3 Se definió en su espacio de trabajo y contenía una cadena. En la línea 3, hiciste una función que es independiente de x que evalúa lo que sea str3 Estaba antes de que ejecutaras la línea 3, cada vez. g se llama. Creo que tu línea 3 no refleja lo que pretendías.

Creo que lo que intentas hacer es algo parecido a lo siguiente:

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

Pero no has descrito lo que pretendías lograr. Por favor, proporcione más detalles.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.