Matlab中串行循环与并行循环的执行时间比较
代码如下:
%串行循环与并行循环的执行时间比较
mypool=parpool
n=600;
tic
for i=1:n
a1(i)=det(randn(n));
end
t1=toc;
display(strcat('for:',num2str(t1),'s'));
tic
parfor i=1:n
a2(i)=det(randn(n));
end
t2=toc;
display(strcat('parfor:',num2str(t2),'s'));
delete(mypool)
咱们直接看代码
第四行:tic是开始一个秒表计时器,也就是开始计时
a1(i)=det(randn(n));
第七行:rand(n)是生成一个随机矩阵
det是计算这个随机矩阵的行列式
第八行:t1=toc;计时结束之后将试讲赋给t1,t1表示的是串行循环所用的时间
toc计算现在到tic所开始的计时器的时间间隔,单位是秒(S),也就是计时结束
display(strcat('for:',num2str(t1),'s'));
第十行:strcat是String Catenate,也就是将多个字符连接成单个字符串,这段代码连接的是for ,数字t1转换成字符串的结果,s。
如果还是看不懂可以看看我的这两篇博客,里面有详细的解读,这绝对不是我懒的再写一遍了。
写给小白的代码解读之Matlab中串行循环与并行循环的结果比较
写给小白的代码解读之Matlab中串行循环与并行循环的执行顺序比较
如果想看结果,可以看这篇博客