matlabFunction is too slow

7 visualizzazioni (ultimi 30 giorni)
Marrie
Marrie il 11 Dic 2013
Commentato: Brad Carman il 16 Ott 2014
Hi all,
I am using matlabFunction to create a .m file to define the function of a vector and its Jacobian:
matlabFunction(fvec, J, 'file', filename, 'vars', {x, phi_old});
When the dimension of the vector = 50, the time cost is reasonable; but when setting the dimension to 500, it becomes extremely slow. Would you please give advice for this problem?
Thank you.

Risposta accettata

Alan Weiss
Alan Weiss il 12 Dic 2013
I have no general advice. Perhaps if we saw a small snippet of your code we could help.
It is possible that your Jacobian is sparse, meaning it has a lot of zeros. In that case, it might be possible to avoid using matlabFunction at all, and simply use the JacobPattern option to have sparse finite differencing instead of time-consuming analytic calculations. Or perhaps there could be a hybrid sort of solution, where you explicitly calculate analytically (with matlabFunction) only the nonzero terms in the Jacobian. But this would require you to write a custom program.
Or it could be something as simple as declaring your symbolic variables to be real, which sometimes (but not often) saves time in matlabFunction.
Sorry I have nothing so helpful. There is simply a lot of calculation to be done, and it uses a lot of memory and time.
Alan Weiss
MATLAB mathematical toolbox documentation

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by