加快计算Matlab中的大循环

时间:2014-10-18 15:25:21

标签: matlab

我正在尝试为高清视频处理准备一个查找表,我的代码很好但计算时间很长,我是Matlab的新手,我不知道是否有可能加快处理速度对于这个循环,

while a<1024
   while b<1024
      while c<1024
         while d<1024
            while e<1024

               Result=xx; %by formula

               f1(result,e+1)=bitor(f1(result,e+1),16);
               f1(result,d+1)=bitor(f1(result,d+1),32);
               f1(result,c+1)=bitor(f1(result,c+1),64);
               f1(result,b+1)=bitor(f1(result,b+1),128);
               f1(result,a+1)=bitor(f1(result,a+1),256);

               e=e+1;
            end

            e=0;
            d=d+1;
         end

         d=0;
         e=0;
         c=c+1;
      end

      d=0;
      e=0;
      c=0;
      b=b+1;
   end

   d=0;
   e=0;
   c=0;
   b=0;
   a=a+1;
end

1 个答案:

答案 0 :(得分:0)

您需要预先分配您的f1对象(f1 = zeros(size(Result,1),1024),或者如果它是一个函数,则预分配任何数据存储,指的是它的总大小。

否则,遍历循环所花费的时间将呈指数级增长(因为它正在复制每个循环中已分配的数据)。

我推荐你:Techniques for Improving Performance