我怎样才能为矢量的每个元素计算另一个矢量中的几个元素?
例如,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]
矢量可以有无限的元素。
答案 0 :(得分:1)
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
或隐式扩展来创建numel(x) * numel(y)
大小的矩阵,然后对展平的数组求和以获得最终结果。
答案 1 :(得分:0)
您可以将x
乘以y
result = x * sum(y)