我有这个小问题,希望你能帮助我。
我的问题是如果在 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"但我想知道是否有办法让它更快。
答案 0 :(得分:2)
@plus
bsxfun
[将逐个元素的二进制操作应用于启用了单例扩展的两个数组]可能只是为你工作。它允许B
扩展到第二维,以便使用A
进行操作,bsxfun(@plus,A,B)
已经是2D矩阵,从而为您提供所需的"求和"输出 -
{{1}}