Matlab может преобразовать строку в символическое выражение, но здесь я хочу, чтобы строка интерпретировалась в соответствии со значениями, известными в рабочей области:
syms x y
y = x;
sym('x + y') % depending on version, use "sym(", "str2sym(" or "evalin(symengine,"
ans =
x + y
Как кодировать для вывода x + x или2 * x?
Другой пример:
syms x y
y = x;
z = sym('a + y')
как изменить код, чтобы получить z = a + x?
Основная проблема, кажется, что sym (string) просто не знает прошлого (не принимая во внимание то, что было определено ранее) и будущего (не объявляя свои переменные как syms - как это могло быть?)
Я думаю, что простой парсер выражений мог бы это сделать: проверьте, существует ли переменная в строке в рабочей области, и объявите ее как символическую, если нет.