Matlab:Repmat和正交向量

时间:2011-11-23 18:34:37

标签: matlab multidimensional-array vectorization orthogonal

我有三个正交的向量

   b_vect = [1 2]
   L_vect = [10 20 30]
   f_vect = [100 200 300]

我想做元素操作的元素。我使用repmat复制其他维度的向量,从而获得3D数组。

   b_arr = repmat(b_vect , [length(f_vect), length(L_vect), 1])   % Wrong?!
   L_arr = repmat(L_vect , [length(f_vect), 1, length(b_vect)])   % Good!
   f_arr = repmat(f_vect', [1, length(L_vect), length(b_vect)])  % Good!

由于b_vect的方向,这出错了。对于f_arr,可以采用旋转的向量f_vect'$,但在b_vect的情况下应如何做?

   size(b_arr)
   size(L_arr)
   size(f_arr)

元素元素产品例如是

   product = b_arr.*L_arr.*f_arr

1 个答案:

答案 0 :(得分:2)

我认为你应该这样做:

b_vect = reshape([1 2],[1 1 numel(b_vect)]);