避免使用dot产品循环,matlab

时间:2013-02-22 19:03:13

标签: matlab

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

以下是示例代码。

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

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用矩阵乘法,如下所示:

r_a_ = rand(1,3);
r_b = rand(100,3); 
C = r_a_ * r_b.'