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

2 views (last 30 days)
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.

Answers (2)

Walter Roberson
Walter Roberson on 6 Nov 2015
  1 Comment
Mathias Blandeau
Mathias Blandeau on 6 Nov 2015
Edited: Mathias Blandeau on 6 Nov 2015
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.

Sign in to comment.


Mathias Blandeau
Mathias Blandeau on 23 Nov 2015
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!