1

我正在使用 Matlab 编写下面的代码。当您将参数设置得更大时,完成运行需要花费太多时间。然后我想优化代码以使其运行得更快。我还没有上任何算法优化课程。但是我已经改变了它的某些部分。代码现在更快了,但还不够。

你有想法让他们更快吗?预分配,前后初始化,无论如何..

rand('state', sum(100*clock));
runs=10000;
bw=20000; ttimeout=303/bw; ts=20/bw;
sift_times=[];sift_tcolls=[];sift_tcws=[];

range_n=5;
for n = range_n
  sift_collisions=[]; 
  uniform_collisions=[]; 
  for w=3:63
      uniform_collision=0;
      sift_collision=0;      
      for i=1:runs
            %Sift Dist:
            chosen_slots = sift_assign_slots(w,n);
            [slots,nodes] = sort(chosen_slots);
            if (slots(1)==slots(2))
                sift_collision = sift_collision + 1;
            end
            %Uniform Dist:
            chosen_slots = ceil(w*rand(n,1));
            [slots,nodes] = sort(chosen_slots);
            if (slots(1)==slots(2))
                uniform_collision = uniform_collision + 1;
            end
        end
        sift_collisions (w-2) = sift_collision  ;
        uniform_collisions(w-2) = uniform_collision  ;
  end
end
4

0 回答 0