How to get struct value solX.x1 with a symbolic variable x1?
4 次查看(过去 30 天)
显示 更早的评论
Hello!I have a symbolic expression like
expr=3*x1-2*x3
I solve a equation using vpasolve and get a struct called solX. I can use solX.x1,solX.x2,...to get values.
I want Matlab to find the variables name in the expr and use subs to get the expr value.
variable_Name=symvar(expr)% get 1*2 sym [x1 x3]
I know solX.name(1) is not correct. How to get solX.x1 using variable_Name?
Many thanks!
0 个评论
回答(1 个)
Walter Roberson
2018-7-31
solX.(name{1})
However since your goal is symbolic substitution you can probably just do
subs(Expression, solX)
2 个评论
Walter Roberson
2018-7-31
name = arrayfun(@char, symvar(YourExpression), 'uniform', 0);
after which you can use solX.(name{1})
But that assumes that all of the symbols in YourExpression appear in solX. If you do not choose to use the shortcut that I posted before of subs(YourExpression, solX) then better would be
subs(YourExpression, fieldnames(solX), struct2cell(solX))
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!