Странное поведение MATLAB в отношении eval()

рассмотрим следующий код

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

MATLAB оценит eval(str3) как и предполагалось, но жалуются на двух других, утверждая, что они Undefined function for input arguments of type 'double'. Почему?

10
задан Markus Klyver
09.12.2022 12:58 Количество просмотров материала 3161
Распечатать страницу

1 ответ

Я могу понять, почему Matlab выдает ошибку. str3 не определено в вашем примере, но из вашего описания, я могу сделать это str3 была определена в рабочей области и содержит строку. В строке 3 Вы создали функцию, независимую от x что оценивает все str3 была перед вами исполнена строка 3, каждый раз g называется. Я думаю, что ваша строка 3 не отражает того, что вы хотели.

Я думаю, что вы пытаетесь сделать, это что-то строки:

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

но вы не описали, к чему стремились. Просьба представить более подробную информацию.

0
отвечен Sander 2022-12-10 20:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх