如何在MATLAB中考虑位置添加矩阵和向量

时间:2014-05-27 20:21:35

标签: matlab vector matrix sum vectorization

我有这个小问题,希望你能帮助我。

我的问题是如果在 MATLAB 中进行此操作是否有所作为:

假设这个矩阵叫做A(4x3):

A=[1 2 3;4 5 6;7 8 9;8 9 1];

这个矢量数组叫做B(4x1):

B=[1;3;5;0];

现在我要做的操作有点简单:A + B = C,其中C是:

 A      +  B   =     C

C=[2 3 4;7 8 9;12 13 14;8 9 1];

如您所见,矩阵C的第一行是矩阵A的第一行与向量B的第一个值之间的总和,并且它继续。

我知道如何轻松地使用" for"但我想知道是否有办法让它更快。

1 个答案:

答案 0 :(得分:2)

使用函数句柄@plus

bsxfun [将逐个元素的二进制操作应用于启用了单例扩展的两个数组]可能只是为你工作。它允许B扩展到第二维,以便使用A进行操作,bsxfun(@plus,A,B) 已经是2D矩阵,从而为您提供所需的"求和"输出 -

{{1}}