我目前有以下代码:
function v3matrix1 = v3(l,eigendata,sphere)
l0=l;
v3matrix1=zeros(2*l0+1,2*l0+1);
for m0=-l0:1:l0
for m0p=-l0:1:l0
fun=@(theta,phi)conj(Ylm(l0,m0,theta,phi)).*(-gamma11(1,eigendata,sphere,theta,phi)).*partialTheta2(l0,m0p,theta,phi).*sin(theta);
v3matrix1(m0+l+1,m0p+l+1)=integral2(fun,0,pi,0,2*pi);
end
end
end
跑步需要约21分钟。我试图通过使用“arrayfun”和“meshgrid”删除for循环来遵循类似的建议(Speeding up a double loop over integrals with changing parameter function values in matlab),但这并没有加快速度。我想知道是否有人有任何其他提示或建议可能会加快此代码的速度?
非常感谢你。