我试图在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
但它不起作用..
需要一些指导..
答案 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]);