Arrays 将长度不均匀的向量相乘并将结果求和
如何计算向量的每个元素与另一个向量的几个元素 例如,x=[1,2]和y=[1,2,3,4],然后我需要将x的每个元素与y的所有元素相乘和求和,如下所示Arrays 将长度不均匀的向量相乘并将结果求和,arrays,matlab,sum,Arrays,Matlab,Sum,如何计算向量的每个元素与另一个向量的几个元素 例如,x=[1,2]和y=[1,2,3,4],然后我需要将x的每个元素与y的所有元素相乘和求和,如下所示 x = [1,2] y = [1,2,3,4] z = [x1*y,x2*y] = [x1*y1+x1*y2+x1*y3+x1*y4,x2*y1+x2*y2+x2*y3+x2*y4] 向量可以有无限的元素 x = randi(10,3,1); y = randi(10,4,1); tmp = bsxfun(@times,x.',y); % P
x = [1,2]
y = [1,2,3,4]
z = [x1*y,x2*y] = [x1*y1+x1*y2+x1*y3+x1*y4,x2*y1+x2*y2+x2*y3+x2*y4]
向量可以有无限的元素
x = randi(10,3,1);
y = randi(10,4,1);
tmp = bsxfun(@times,x.',y); % Pre-R2016b
% tmp = x.'*y; % Post R2016b method
out = sum(tmp(:));
可以使用bsxfun或隐式展开创建numelx*numely大小的矩阵,然后在展平数组上求和以得到最终结果。您可以将x乘以y的和
可以在这里帮助您,请尝试z=sumy'*x,1
result = x * sum(y)