0

我有两个向量,我想在没有 for 循环的情况下获得他们的 dor 产品。这会节省很多时间。

这是示例代码。

p=1;
C=zeros(100,1);
    r_a_= rand(1,3);    
    r_b= rand(100,3);    
    for it=1:size(r_b,1)
        C(p,1) = dot(r_a_,r_b(it,:)) ;
     p=p+1
    end

为了避免for循环并只调用一次点函数,我是这样想的

r_a=repmat(r_a_,100,1);
C = dot(r_a,r_b) %%%%%%%% But obviously it gives wrong answer

任何想法?

4

1 回答 1

2

您可以使用矩阵乘法来做到这一点,如下所示:

r_a_ = rand(1,3);
r_b = rand(100,3); 
C = r_a_ * r_b.'
于 2013-02-22T19:06:55.213 回答