在MATLAB中用另一个矩阵添加一个矩阵

时间:2014-08-11 16:01:29

标签: matlab matrix

我试图在MATLAB中添加另一个矩阵的矩阵。

第一个矩阵如下所示:

0.0963928845397177  1.30250820960714
-0.830468497619261  1.40991150001902
-0.352252185662263  -1.66254297035808
-0.174775039544099  1.94368447839214
-0.480653419481013  -1.08469845223762
0.836836711417678   0.226818975021420
2.53834934138902    1.09892920248474
-1.32333425148040   0.147188752472257
0.128340263343307   2.29566581301284
-1.44237915336114   2.75255787759549

第二个矩阵看起来像这样:

[1 2]

我想添加第二个矩阵,第一个矩阵=>意思是0.0963928845397177 + 1和1.30250820960714 + 2。我想在第一列和第二列添加1。

我尝试了什么:

secondmatrix .+ firstmatrix

但它不起作用..

需要一些指导..

6 个答案:

答案 0 :(得分:3)

如果您可以在大型矩阵中使用此功能,可能最好避免repmat。与[A(:,1)+b(1) A(:,2)+b(2)]方法类似。我是bsxfun的粉丝:

bsxfun(@plus, A, b)

答案 1 :(得分:2)

建议使用Jommy,或者您可以复制较小的矩阵以使其大小相同,然后添加如下:

C = A + repmat(B,[size(A,1),1]);

答案 2 :(得分:2)

试试这个

 sum_ = first_matrix + repmat(second_matrix,size(first_matrix,1),1);

答案 3 :(得分:2)

您可以这样做;

A = ones(5,2)
B=[1,2]
C = A+repmat(B,size(A,1),1)

C = [A(:,1)+B(1,1) A(:,2)+B(1,2)]

答案 4 :(得分:2)

Matlab提供了一个函数,用于你想要做的事情,bsxfun,“将逐个元素的二元运算应用于两个启用了单例扩展的数组”

示例代码:

result_matrix = bsxfun(@plus, firstmatrix, secondmatrix);

答案 5 :(得分:1)

如果A是大矩阵而B是小编,那么

C = [A(:,1)+B(1) A(:,2)+B(2)];

另一种可能性是

C = A + repmat(B, [length(A) 1]);
相关问题