2016-02-08 47 views
0

说,我想在矩阵中添加一个到每个值在Matlab

1 2 3 
4 5 6 
7 8 9 

成为

2 3 4 
5 6 7 
8 9 10 

说,第一基质mat。我以为mat.+1的工作,但这个给

意外MATLAB运营商。

有没有很好的方法来做到这一点?

+3

这是因为'+'操作本质上是逐元素的操作,只要该尺寸匹配或其中一个操作数是一标量。 '。+'没有定义。 'mat + 1'就足够了。 – TroyHaskin

回答

7

只需添加1,你可以标量添加到矩阵:

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

B = A + 1 
+4

downvote?为什么? – Dan

0

一个解决方案是使用ones来创建一个1s和添加矩阵。使用size通过这两个维度:

new_mat = mat + ones(size(mat)) 

您还可以代替ones使用repmat(1,size(mat)),它可以创建一个充满不同的值矩阵

+4

创建一个完全由1构成的矩阵并将其添加到矩阵中是浪费的,尤其是矩阵很大时。 MATLAB采用了一种特殊的情况,如果你想通过相同的常数在矩阵中添加每个值,只需使用所需的标量值并将其添加到矩阵。请看Dan的答案以获得更多细节。 – rayryeng

相关问题