我首先使用命令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) = 1
和A(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可以用作对应列或行的最后索引的宏变量。