How can I remove parentheses in a symbolic expression and perform the operations for the coefficients?

I cannot use parentheses and / operations in my code because PHClab can't interpret them. So I need to remove them. How can I make it? For example I have
x2/24 - x1/6 + (x1*x4)/8 + (2*x3)/15 - (11*x4)/120 - x5/14 + (5*x6)/56 + x7/2 - x8 + x9
and I need
0.04167*x2 - 0.1667*x1 + 0.125*x1*x4 + ... + x9
Thank you

2 件のコメント

If you remove the brackets, the expression will change
Perhaps, but I can only remove the brackets if I convert the symbolic expression to a character array. I removed the parentheses so I got:
x2/24 - x1/6 + x1*x4/8 + 2*x3/15 - 11*x4/120 - x5/14 + 5*x6/56 + x7/2 - x8 + x9
What should I do next? How can I get from x2/24 to 0.04167*x2 ?

サインインしてコメントする。

 採用された回答

Mischa Kim
Mischa Kim 2014 年 3 月 15 日
編集済み: Mischa Kim 2014 年 3 月 15 日
Zoltán, use the vpa command:
syms x2 x1 x4 x3
f = x2/24 - x1/6 + x1*x4/8 + 2*x3/15
f =
x2/24 - x1/6 + (2*x3)/15 + (x1*x4)/8
vpa(f,5) % the "5" denotes the number of significant digits
ans =
0.041667*x2 - 0.16667*x1 + 0.13333*x3 + 0.125*x1*x4

3 件のコメント

Thank you, it works as I want.
Zoltán Csáti
Zoltán Csáti 2014 年 3 月 15 日
編集済み: Zoltán Csáti 2014 年 3 月 15 日
...except one thing. some of the coefficients have the form:
1.0760050095961908208164032839825*10^(-82)
So vpa works well, but how can I turn from the scientific notation to the the standard notation (so that it does not contain parentheses)? 1.0760050095961908208164032839825e-82 would be correct.
I solved it by string manipulations (strrep).

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeSymbolic Math Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by