В Matlab 2016a, Mathworks осуждал использование функции sym
для разбора символьных выражений:Как разобрать символическое выражение в Matlab
>> expr = sym('x + 1')
Warning: Support of strings that are not valid variable names or define a number will be
removed in a future release. To create symbolic expressions, first create symbolic
variables and then use operations on them.
> In sym>convertExpression (line 1536)
In sym>convertChar (line 1441)
In sym>tomupad (line 1198)
In sym (line 177)
expr =
x + 1
предложение Это предупреждение не является практичным, когда символические выражения считываются из файл, а не созданный вручную в коде. Есть ли функция в Matlab для замены этой функции? Я бы предпочел не regexprep
и eval
мой путь через него.
Вы хотите разобрать произвольные выражения или просто функции? – Matt
Возможно, стоит обратиться в службу поддержки MathWorks с вашим конкретным вариантом использования. Обратите внимание, что одна из причин, почему введенный выше уровень устарел, заключается в том, что внутри этих строк вам нужно использовать синтаксис MuPAD, а не MATLAB, что делает, например, вывод 'sym ('zeta (a, b)')' a немного неожиданно для многих пользователей. –
@Matt Мой самый распространенный прецедент - простые выражения '2 * x + y^2 + 1'. Иногда я буду использовать вызовы функций 'sin (x)' в выражении. – drhagen