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

2 visualizzazioni (ultimi 30 giorni)
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.

Risposte (2)

Walter Roberson
Walter Roberson il 6 Nov 2015
  1 Commento
Mathias Blandeau
Mathias Blandeau il 6 Nov 2015
Modificato: Mathias Blandeau il 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.

Accedi per commentare.


Mathias Blandeau
Mathias Blandeau il 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!

Translated by