按行将一个数组添加到另一个数组
Row wise Addition of one array to another
我有一个 1x64 大小的数组 A 和另一个 64x1806 大小的数组 B。我想将 A 添加到 B 中,将 A 的第一个元素添加到 B 的第一行,依此类推,直到将 64 个元素添加到 B 的第 64 行。我如何在 matlab 中执行此操作?例如
A= (4 5 6 7)
B= (3 4 5;
4 5 6;
4 5 6;
3 4 5 )
c=(4+3) (4+4) (4+5);
(5+4) (5+5) (5+6);
(6+4) (6+5) (6+6);...
如果我理解正确的话,你可能想先使用 repmat 到 "repeat" A 的每一列,当它的大小与 B 相同时,只需将 B 添加到它:
C = repmat(A', 1, size(B, 2)) + B
使用bsxfun
添加A
转置和B
element-wise单例扩展:
A = [4 5 6 7]
B = [3 4 5; 4 5 6; 4 5 6; 3 4 5];
C = bsxfun(@plus, A.', B);
或者,从 Matlab R2016b 开始,您可以直接使用 +
,感谢 implicit singleton expansion:
C = A.' + B;
我有一个 1x64 大小的数组 A 和另一个 64x1806 大小的数组 B。我想将 A 添加到 B 中,将 A 的第一个元素添加到 B 的第一行,依此类推,直到将 64 个元素添加到 B 的第 64 行。我如何在 matlab 中执行此操作?例如
A= (4 5 6 7)
B= (3 4 5;
4 5 6;
4 5 6;
3 4 5 )
c=(4+3) (4+4) (4+5);
(5+4) (5+5) (5+6);
(6+4) (6+5) (6+6);...
如果我理解正确的话,你可能想先使用 repmat 到 "repeat" A 的每一列,当它的大小与 B 相同时,只需将 B 添加到它:
C = repmat(A', 1, size(B, 2)) + B
使用bsxfun
添加A
转置和B
element-wise单例扩展:
A = [4 5 6 7]
B = [3 4 5; 4 5 6; 4 5 6; 3 4 5];
C = bsxfun(@plus, A.', B);
或者,从 Matlab R2016b 开始,您可以直接使用 +
,感谢 implicit singleton expansion:
C = A.' + B;