我正在尝试为高清视频处理准备一个查找表,我的代码很好但计算时间很长,我是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
答案 0 :(得分:0)
您需要预先分配您的f1对象(f1 = zeros(size(Result,1),1024)
,或者如果它是一个函数,则预分配任何数据存储,指的是它的总大小。
否则,遍历循环所花费的时间将呈指数级增长(因为它正在复制每个循环中已分配的数据)。