How to speed up this loops?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi,
Is there a way to speed up this?
maxN = 120;
x = -30:0.1:30;
xElements = numel(x);
u_mn = zeros(xElements, xElements);
for m = -maxN:2:maxN
for i = 1 : xElements
for j = 1 : xElements
u_mn(i, j) = sqrt((n+1)/pi) * besselj(m+1, 2*sqrt(x(i)^2 + x(j)^2)) / sqrt(x(i)^2 + x(j)^2)^(m+1) * (x(i) + 1i*x(j))^m;
end
end
end
Best regards, Alex
댓글 수: 4
Walter Roberson
2016년 6월 1일
You do not store the results for each different m, and you are not summing them or anything like that, so the effect is as if you had only done the final m value.
채택된 답변
Ahmed Rashid
2016년 6월 2일
You can create a mex function of your firstTestFunct by
xx = 1;
codegen firstTestFunct -args {xx, xx, xx, xx}
You need to do it only once. It will generate a mex file. To call the generated mex file, you just need to replace firstTestFunct with firstTestFunct_mex .
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 MATLAB Algorithm Acceleration에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!