Я недавно обновил Matlab с 2013b до 2019a (да, я знаю, многое изменилось .... но не стоимость программного обеспечения). У меня есть «устаревший код», который интенсивно использует ящик для инструментов symboli c. Одна вещь, которая, кажется, вызывает большую проблему, является изменением в примечании. Я думаю, что этот вопрос лучше всего представить на примере:
2013
>> F(x) = sym('F(x)');
>> subs(diff(F,x),x,1)
ans(x) =
D(F)(1)
2019
>> F(x) = str2sym('F(x)');
>> subs(diff(F,x),x,1)
ans(x) =
subs(diff(F(x), x), x, 1)
В 2019 году F(x) = sym('F(x)');
не будет работать, и мне сказали переключитесь на F(x) = str2sym('F(x)');
, который, кажется, выполняет операцию, как предполагалось, но запись убивает мой код.
Есть ли способ сохранить старую запись или мне нужно переписать мой код?
РЕДАКТИРОВАТЬ
Хороший комментарий ..... как это нарушает мой код? Я использую инструменты symboli c для решения уравнений, а затем анализирую их на основе их структуры. Например, если выражение имеет третью производную, я бы поместил это в группу A. Если оно имеет 7 производных, я бы поставил это в группу B. В 2013 году было легко разобрать высокие производные ... третью производная будет выглядеть так D(D(D(F)))(x)
, в 2019 году она будет выглядеть так diff(F(x), x, x, x)
. Я также обнаружил, что 2019 год смешивает обозначения. Например,
F(x) = str2sym('F(x+dx)')
F(x) =
F(dx + x)
>> diff(F,x,3)
ans(x) =
D(D(D(F)))(dx + x)
На данный момент, я думаю, что это будет просто исправление одного патча за другим. Вероятно, не самая лучшая идея разбирать выражения Symboli c, если запись нестабильна. Я надеялся, что может быть "да, go в настройках и выберите ..."