为什么对这个矩阵中的行求和得到0

  • 本文关键字:求和 arrays matlab matrix sum
  • 更新时间 :
  • 英文 :


我首先使用命令A = [1:10]'创建了一个数组A。然后我创建了一个10x10的矩阵,只包含0。然后我用A覆盖这个矩阵,得到这个新矩阵:

A =
1     0     0     0     0     0     0     0     0     0
2     0     0     0     0     0     0     0     0     0
3     0     0     0     0     0     0     0     0     0
4     0     0     0     0     0     0     0     0     0
5     0     0     0     0     0     0     0     0     0
6     0     0     0     0     0     0     0     0     0
7     0     0     0     0     0     0     0     0     0
8     0     0     0     0     0     0     0     0     0
9     0     0     0     0     0     0     0     0     0
10     0     0     0     0     0     0     0     0     0

现在的问题是,当我运行命令sum((A(1,1)):(A(1,end)))时,我一直得到0,而我应该得到1,因为它是第一行的总和。我试着在其他矩阵上运行相同的命令,他们给了我正确的答案,那么为什么它在这里不起作用呢?

术语

(A(1,1)):(A(1,end))

创建并清空数组,如A(1,1) = 1A(1,end) = 0,这使得colon :无法创建向量,因此其上的和为零。但我想这不是你想要的。

你想要的是

sum(A(1,:))

或者关于整个矩阵,通过指定和的维度,例如

sum(A,2)
ans =
1
2
3
4
5
6
7
8
9
10

编辑

如果您想从不同的列索引开始,可以执行以下操作:

sum( A(rowIndex,firstColumnIndex:lastColumnIndex) )

而CCD_ 8可以用作对应列或行的最后索引的宏变量。

相关内容

  • 没有找到相关文章

最新更新