Как найти символическую переменную в символическом выражении в Matlab?
У меня есть вектор символических выражений, как это в Matlab:
(p4*x15 - (p2*p3*x3*x5)/(p1*x2))/p22
(p7*x11 + p20*x11 + p17*x16 + p19*x16 - p6*x4*x10)/p22
Я хотел бы найти выражение (я), где, например, 'x2' присутствует. Есть идеи, как мне это сделать? Спасибо!
1 ответ
Решение
Используя ваш пример
syms p1 p2 p3 p4 p6 p7 p17 p19 p20 p22
syms x2 x3 x4 x5 x10 x11 x15 x16
s(1) = (p4*x15 - (p2*p3*x3*x5)/(p1*x2))/p22;
s(2) = (p7*x11 + p20*x11 + p17*x16 + p19*x16 - p6*x4*x10)/p22;
ты можешь использовать symvar
:
v = arrayfun(@(x)any(symvar(s)==x2),s);
или вы можете использовать strfind
:
v = arrayfun(@(x)~isempty(strfind(char(x),'x2')),s);