即時編寫一個擬合程序的程序,並且目前正在優化代碼以加快計算。 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