How can I increase the optimization with intermediate temporary expressions during the use of the function "matlabFunction"

2 次查看(过去 30 天)
Hello,
I am working on a linked chain model using symbolic notation with MuPad. After I create the matrix of the model in MuPad, I reassigne it in the Matlab notebook with the function "getVar" then I create a function with "matlabFunction".
The matrix I calculate are quite big (more than 1Mo text) and something is bothering me, I find tha the optimization of the function with intermediate temporary expressions to be very light. I wish to know if there is a trick that would help me increase the number of intermediate function. Or maybe a way to rearange the matrix before exporting it with matlabFunction.
I attached a file for example.
Thank you in advance.

回答(2 个)

Walter Roberson
Walter Roberson 2015-11-6
  1 个评论
Mathias Blandeau
Mathias Blandeau 2015-11-6
编辑:Mathias Blandeau 2015-11-6
Thank you for the tip !
If i combine it with generate::optimize as advised it is a bit quicker than matlab but the optimization process is still light.
Indeed, when you look at the ol and new H vector (cf attached file with new and old), you see that the equation is lighter but there could be much more intermediate function created.

请先登录,再进行评论。


Mathias Blandeau
Mathias Blandeau 2015-11-23
Hi, I think I figured out the origin of the problem. To my suprise, the over complexity of the result was du to the function linalg::scalarProduct (??). After I wrote the scalar product manually (u.v = u1*v1 + u2*v2+...) it worked very well, especially during the generation of the function. Thanks again !

Community Treasure Hunt

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

Start Hunting!

Translated by