首页 > 微波/射频 > 射频学习交流 > matlab编程一问

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 ];
    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波的定义与性质?
下一篇:求鳍线方面的资料

射频和天线工程师培训课程详情>>

  网站地图