MATLAB_for循环的优化(meshgrid)
2019-06-28 本文已影响0人
Silture_6095
x取范围1到10000,y取范围10001到20000,计算z=x2+y2的值。分别使用for循环,meshgrid后的矩阵进行运算,利用tic,toc记录每个方法所需要的时间。
x = 1:5000;
y = 5001:10000;
z = zeros(5000);
ans0 = zeros(5000,5000);
tic
for i = 1:5000
for j = 1:5000
ans0(i,j) = x(i)^2 + y(j)^2;
end
end
toc %0.491108s
tic
[X,Y] = meshgrid(x,y);
ans1 = X.^2 + Y.^2;
toc %0.187623s
运算时间如标注所示,利用矩阵运算能节省一半以上的时间。