即时编写一个拟合程序的程序,并且目前正在优化代码以加快计算。 weakes点是一个部分,我必须计算大量的bessel函数,大约需要0.7秒。在我的情况下,q有177个条目,th 100和R 400.在MATLAB中计算贝塞尔函数的更快方法
Js = zeros(numel(th),numel(q)); tR=sin(th')*R;
for k = 1:numel(q)
Js(:,k) = sum(tn.*besselj(0,q(k)*tR),2);
end
我也尝试制作3D矩阵,但计算时间稍长。
[Q,T,RR]=meshgrid(q,sin(th),R);
Js1 = besselj(0,Q.*T.*RR);
所以,我想知道,有没有办法来计算这些besselfunctions更快?由于事先kuy
我不认为有。您受限于使用内置的“besselj”。 – rayryeng
您是否尝试过使用'bsxfun'? – flawr
输入的大小是多少?每个输入有多少个维度?哪些是向量,又是行向量还是列向量,哪些是较高的昏暗矩阵?告诉我们参赛作品的数量并不能给我们提供这些信息。 – Divakar