我正在寻找一种方法来添加两个数组的元素

use*_*766 -4 arrays matlab addition

我正在寻找一种方法,我可以在一个数组中添加元素,使第一个数组的第一个元素添加到第二个数组中的每个元素,然后第一个数组中的第二个元素添加到第二个数组等.最终的矢量将是长度(a)*长度(b)长

例如...

a=[1,2,3,4] b=[5,6,7] answer = [(1+5),(1+6),(1+7),(2+5),(2+6),(2+7),(3+5),(3+6),(3+7),(4+5),(4+6),(4+7)] =[6,7,8,7,8,9,8,9,10,9,10,11]

Lui*_*ndo 5

阅读bsxfun.它对这类事物非常有用(通常比arrayfun或更快for):

result = bsxfun(@plus, a(:).', b(:)); %'// matrix of size numel(b) x numel(a)
result = result(:).'; %'// linearize to a vector
Run Code Online (Sandbox Code Playgroud)

或者,更多的怪胎:kron用产品做你想要的而不是总和.所以:

result = log(kron(exp(a),exp(b)));
Run Code Online (Sandbox Code Playgroud)