matlab编程一问
12-08
对于下面的程序段:
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
....,不会吧?
相关文章:
- FDTD编程请教(05-08)
- 大家用FDTD算法时,有多少人用商用软件,有多少人自己编程?(05-08)
- 请教一个Matlab画图问题和并矢格林函数的编程(05-08)
- 学习微波对编程的要求高么?(05-08)
- 有精通agilent仪器编程的么 聊聊(05-08)
- 求高手指点,通过编程实现HFSS参数,是先编写matlab,生成VB还是用VB生成hfss和matlab,望指点迷津 (05-08)
射频专业培训教程推荐