写给小白的代码解读之Matlab中串行循环与并行循环的结果比较

Matlab中串行循环与并行循环的结果比较

代码如下:


%串行循环与并行循环的结果比较
mypool=parpool
n=8;
a1=zeros(n,1);
for i=1:8
    a1(i)=i;
end
a2=zeros(n,1);
parfor i=1:8
    a2(i)=i;
end
[a1 a2]
delete(mypool)

可能你初看这段代码不是很理解,没有关系,咱们一步一步的分析他。

第一行:用来说明这整段代码是比较串行循环与并行循环的结果(“%”用于在matlab中添加注释

%串行循环与并行循环的结果比较

第二行:打开一个名字叫做mypool的并行计算池,

mypool = parpool

第三行:定义n等于8

n=8;

第四行:创建一个名字叫a1的全0矩阵(如图)。(zeros(m,n)在matlab中表示生成生成m*n阶的0矩阵)

a1=zeros(n,1);

第五行:采用串行循环执行,“i”的取值是从1到8

for i=1:8

第六行:把“i”赋给a1矩阵的第“i”个元素(例如把1赋给全0矩阵的第一个元素

    a1(i)=i;

第七行:for循环的结束(串行循环结束

end

第八行:创建一个名字叫a2的全0矩阵

a2=zeros(n,1);

第九行:采用并行循环执行,“i”的取值是从1到8

parfor i=1:8

第十行:把“i”赋给a2矩阵的第“i”个元素(例如把1赋给全0矩阵的第一个元素)

    a2(i)=i;

第十一行:parfor循环结束(并行循环结束

end

第十二行:将a1和a2放在一个矩阵中

[a1 a2]

第十三行:关闭这个名字叫做mypool的并行计算池(打开和关闭时成对出现的

delete(mypool)

这样是不是好点了呢

如果想看结果,点这里

并行循环

发布了152 篇原创文章 · 获赞 124 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_44762986/article/details/104727002