1 2 3
4 5 6
7 8 9
成为
2 3 4
5 6 7
8 9 10
说,第一基质mat
。我以为mat.+1
的工作,但这个给
意外MATLAB运营商。
有没有很好的方法来做到这一点?
1 2 3
4 5 6
7 8 9
成为
2 3 4
5 6 7
8 9 10
说,第一基质mat
。我以为mat.+1
的工作,但这个给
意外MATLAB运营商。
有没有很好的方法来做到这一点?
一个解决方案是使用ones
来创建一个1s和添加矩阵。使用size
通过这两个维度:
new_mat = mat + ones(size(mat))
您还可以代替ones
使用repmat(1,size(mat))
,它可以创建一个充满不同的值矩阵
创建一个完全由1构成的矩阵并将其添加到矩阵中是浪费的,尤其是矩阵很大时。 MATLAB采用了一种特殊的情况,如果你想通过相同的常数在矩阵中添加每个值,只需使用所需的标量值并将其添加到矩阵。请看Dan的答案以获得更多细节。 – rayryeng
这是因为'+'操作本质上是逐元素的操作,只要该尺寸匹配或其中一个操作数是一标量。 '。+'没有定义。 'mat + 1'就足够了。 – TroyHaskin