Extract operations from symbolic expression

12 ビュー (過去 30 日間)
Cedric Kotitschke
Cedric Kotitschke 2023 年 1 月 28 日
編集済み: Paul 2023 年 2 月 11 日
Hello,
given a symbolic expression, I want to extract the fundamental operations that take place in this symbolic expression. In the end, I want to create a Simulink model that does the same as the symbolic expression but without a simple matlab function block but with basic simulink blocks. For that, I need to know what happens to the inputs and in what order.
For example:
I have the symbolic expression z = cos(x)*y + y^2.
How exactly do I get the necessary information from the sym object? I want to extract that the cosine of x is computed which is then multiplied with y and then this product is added to the square of y.
Are there any built-in function that can help me with this? So far, the only solution I could think of was to parse the string generated by "simscapeEquation(z)"
Thanks so much!
  2 件のコメント
Cedric Kotitschke
Cedric Kotitschke 2023 年 1 月 28 日
I'm not yet sure how the output should look like. I discovered that the Shunting yard algorithm at least brings the operation in the right order so that you can read it from left to right. But yes, a stream of RPN operations would be a good starting point

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

採用された回答

Paul
Paul 2023 年 1 月 28 日
Hi Cedric
What's the objection to using a Matlab Function block? If that wasn't a constraint, you could use matlabFunctionBlock
Even if you break down the expression, what would be the next step for implementing all of the individual Simulink blocks to rebuild the expression in Simulink?
  5 件のコメント
Cedric Kotitschke
Cedric Kotitschke 2023 年 2 月 11 日
The children and the symFunType command was exactly what I needed, thank you! I actually made it work now :)

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

その他の回答 (0 件)

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by