如何在MATLAB中将向量中的每个元素乘以另一个向量中的所有元素

时间:2019-02-24 13:59:43

标签: matlab matrix

例如,我有第一个向量[2x1]:

A = 
[1;-1]; 

另一个向量也是[2x1]:

B = 
[7;8];

我需要C为第一个元素1与7和8相乘,然后与-1与7和8相乘的结果,因此结果向量c为[4x1]:

C = 
[7; 8;-7;-8];

谢谢

2 个答案:

答案 0 :(得分:3)

您正在做的是计算Kronecker product。在Matlab中,这是在函数kron中实现的。

A =[1;-1];
B = [7;8];
kron(B,A)

ans =

     7
     8
    -7
    -8

答案 1 :(得分:1)

正如您提到的,您特别希望使用循环的方法,这是一个:

A = [1, -1];
B = [7, 8];
m = length(A);
n = length(B);
C = zeros(m * n, 1);
for i = 1:m
  for j = 1:n
    C((i-1) * n + j) = A(i) * B(j);
  end
end
C

C =

 7
 8
-7
-8

我个人也希望使用kron函数...