我正在尝试为这个等式生成矢量化代码(以及同一形式的多个其他代码):
这将被评估,ode45并且唯一的变化部分是Rmn(t)我预先计算贝塞尔和sin函数.目前我的代码看起来像这样:
for iR = 1:nR
p(:, iR) = sum(Rmn.*J0m(:, :, iR),1)*sinanz;
end
Run Code Online (Sandbox Code Playgroud)
M,N是我总和中的术语数R,Z是我正在使用的数量r和z坐标.Rmn是一个M*N矩阵.J0m是一个M*N*R数组.这是一个M*R重复的矩阵N.sinanz是一个N*Z矩阵.J0m并sinanz预先计算,不要改变.
这工作但很慢,所以我试图优化它.我认为第一步是减少J0m所以它只是m*R但我无法弄清楚如何.我正在寻找有关如何执行此操作的任何建议以及有关如何优化此操作的任何建议.