2013-06-25 175 views
0

我创建矢量分量的1X7阵列的组件(因此实际尺寸为1x7x3)这段代码:MATLAB - 阵列和矩阵乘法

[half_phi half_theta] = meshgrid(-90:30:90, 0); 
[half_x half_y half_z] = sph2cart(degtorad(half_phi), degtorad(half_theta), 1); 
halfDir = cat(3, half_x, half_y, half_z) 

什么,我想接下来要做的是使一个3x3矩阵与每个向量相乘,最后返回一个1x7x3数组,如何实现这个简洁?

谢谢。

回答

0

这是你想要的吗?

A=rand(1,7,3); 
B=rand(3,3); 

C=reshape(reshape(A,1*7,3)*B,[1,7,3]); 

或也许

C=reshape(reshape(A,1*7,3)*B',[1,7,3]); %%% with B' instead of B 
+0

不一定需要第二个'reshape'。假设'C'尚未分配,你可以这样做:'C(1,:,)= reshape(A,1 * 7,3)* B; – horchler