Команда eval в качестве строки для использования с Matlab - PullRequest
3 голосов
/ 04 мая 2011

Есть ли в Matlab способ сохранить команду как строку для последующего использования?
Например, если у меня есть

x = 1:10;
plot(x, x);

Могу ли я как-то автоматически сохранить 2-й ряд как str = 'plot(1:10, 1:10)', чтобы позже я мог снова использовать команду просто с eval(str)? Какие-нибудь полезные функции, помогающие мне с этой задачей?

p.s. Я знаю, что можно сохранить строку с str='plot(x,x)', но этого недостаточно, поскольку это зависит от мгновенных значений переменной x рабочей области, которые могут изменяться со временем.

1 Ответ

6 голосов
/ 04 мая 2011

Вы можете попробовать использовать замыкание.В вашем случае это будет выглядеть так:

x=1:10;
f = @()plot(x, x);

Теперь f имеет все, что необходимо для выполнения графика (включая информацию в x), и вы можете применить его для выполнения функции графика:

f()
...