matlab for循环向量化的问题在写循环时运行慢想改成向量,但本人菜鸟……向量化一点都不熟.麻烦各位帮忙看看下面的两层循环如何才能向量化啊x0=-5;y0=0;z0=0;xx=1:3:300;yy=[5,7,-4,6,12];zz=[1,7,8,-9,3];f
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/02 14:07:04
matlab for循环向量化的问题在写循环时运行慢想改成向量,但本人菜鸟……向量化一点都不熟.麻烦各位帮忙看看下面的两层循环如何才能向量化啊x0=-5;y0=0;z0=0;xx=1:3:300;yy=[5,7,-4,6,12];zz=[1,7,8,-9,3];f
matlab for循环向量化的问题
在写循环时运行慢想改成向量,但本人菜鸟……向量化一点都不熟.麻烦各位帮忙看看下面的两层循环如何才能向量化啊
x0=-5;y0=0;z0=0;
xx=1:3:300;
yy=[5,7,-4,6,12];
zz=[1,7,8,-9,3];
for j=1:100
for k=1:5
r(j,k)=sqrt((x0-xx(j))^2+(y0-yy(k))^2+(z0-zz(k))^2);
end
end
matlab for循环向量化的问题在写循环时运行慢想改成向量,但本人菜鸟……向量化一点都不熟.麻烦各位帮忙看看下面的两层循环如何才能向量化啊x0=-5;y0=0;z0=0;xx=1:3:300;yy=[5,7,-4,6,12];zz=[1,7,8,-9,3];f
【解法1】
x0=-5;y0=0;z0=0;
xx=1:3:300;
yy=[5,7,-4,6,12];
zz=[1,7,8,-9,3];
xx100 = (x0-xx).^2;
yyzz5 = (y0-yy).^2+(z0-zz).^2;
xx1005 = repmat(xx100', 1, 5);
yyzz1005 = repmat(yyzz5, 100, 1);
r1 = sqrt(xx1005 + yyzz1005);
% r-r1 % 验算
【解法2】
x0=-5;y0=0;z0=0;
xx=1:3:300;
yy=[5,7,-4,6,12];
zz=[1,7,8,-9,3];
xx100 = (x0-xx).^2;
yyzz5 = (y0-yy).^2+(z0-zz).^2;
r2 = sqrt(bsxfun(@plus, xx100', yyzz5));
% r-r2 % 验算