小编Tro*_*ock的帖子

与Matlab2016b相比,如何在Julia 0.5中获得更快的成对距离和矢量计算?

我正在运行一个程序,需要在2D中的一组点上重复使用成对距离计算,然后计算向量.这最终导致我的运行时间出现瓶颈,因此我尝试将我的代码从Matlab重新编写为Julia,以利用其更快的速度.然而,我遇到的问题是我在Julia中编写的函数实际运行速度比我的Matlab实现慢五倍.鉴于朱莉娅的声誉是一种快得多的语言,我假设我做错了什么.

我写了一个简单的例子来说明我所看到的.

朱莉娅代码:

using Distances
function foo()
  historyarray = zeros(5000,150,2)
  a = randn(150,2)
  for i in 1:5000
    pd = pairwise(Euclidean(),a.')
    xgv = broadcast(-,a[:,1].',a[:,1])
    ygv = broadcast(-,a[:,2].',a[:,2])
    th = atan2(ygv,xgv)
    fv = 1./(pd+1)
    xfv = fv*cos(th)
    yfv = fv*sin(th)
    a[:,1]+= sum(xfv,2)
    a[:,2]+= sum(yfv,2)

    historyarray[i,:,:] = copy(a)
  end
end
Run Code Online (Sandbox Code Playgroud)

Matlab代码:

function foo
histarray = zeros(5000,150,2);
a = randn(150,2);
for i=1:5000

    pd = pdist2(a,a);
    xgv = -bsxfun(@minus,a(:,1),a(:,1)');
    ygv = -bsxfun(@minus,a(:,2),a(:,2)');
    th = atan2(ygv,xgv);
    fv = 1./(pd+1);
    xfv = fv.*cos(th);
    yfv = fv.*sin(th);
    a(:,1) …
Run Code Online (Sandbox Code Playgroud)

performance matlab julia

4
推荐指数
1
解决办法
454
查看次数

标签 统计

julia ×1

matlab ×1

performance ×1