matlab编程一问
录入:edatop.com 阅读:
对于下面的程序段:
a = ones(3,3,3);
gj = [ 0 1 2 ];
for i = 1:3
for j = 1:3
for k = 1:3
a(i,j,k) = gj(1,j)*a(i,j,k);
end
end
end
由于实际矩阵很大,循环特慢,
不知如何改写成矢量方式,请高手指点,谢谢!
a = ones(3,3,3);
gj = [ 0 1 2 ];
for i = 1:3
for j = 1:3
for k = 1:3
a(i,j,k) = gj(1,j)*a(i,j,k);
end
end
end
由于实际矩阵很大,循环特慢,
不知如何改写成矢量方式,请高手指点,谢谢!
是不是可以改成这样:
a = ones(3,3,3);
gj = [ 0 1 2 ];
a(1:3,1:3,1:3) = gj(1,1:3)*a(1:3,1:3,1:3);
end
这样维数不对吧?
j,k的循环可以交换过来,看得清楚些,
就是
for i,
for k.
a(i,:,k) = gj(1,:).*a(i,:,k);
end k
end i
也就是说
for j =1:3
a(:,j,:) = gj(1,j) * a(:,j,:);
end
....,不会吧?
申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习本站推出的微波射频专业培训课程。
上一篇:TE波的定义与性质?
下一篇:求鳍线方面的资料