matlabFunction is too slow

8 次查看(过去 30 天)
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.

采纳的回答

Alan Weiss
Alan Weiss 2013-12-12
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by