我是matlab的新手,我无法理解这行代码
A((i-1)*nneg+1:i*nneg,:) =
ones(nneg,1)*temp(i,2:n+1)+
temp(npos+1:npos+nneg,2:n+1);
这是否意味着 - >
A中的每个元素,其中x在以下各项之间变化:
(i-1)*nneg+1
和上限i*nneg
以及所有y,将分配1 * .....
an element from temp or all elements in the range of the y
(temp(i,2:n + 1))?
并且通过相同的推理,其中一个温度范围(npos + 1:npos + nneg,2:n + 1)或全部加起来?
答案 0 :(得分:1)
该命令更新A
的一些水平子矩阵A(a:b, :) = some range of rows, and ALL columns = some horizontal sub-matrix of A
A(:, c:d) = some range of columns, and ALL rows = = some vertical sub-matrix of A
更新:
没有看到更多的代码,我无法确定,但语法表明temp(npos + 1:npos + nneg,2:n + 1)是一个矩阵,而一个(nneg,1)* temp(i ,2:n + 1)也是一个相同大小的矩阵,只包含1个。
(i-1)* nneg + 1和i * nneg都是整数,其中(i-1)* nneg + 1< = i * nneg。这两个整数定义了一个A的子矩阵,它的值会更新。
ones(nneg,1)创建一个长度为nneg的[1,1,1,1 ...]的垂直数组。然后,这将与水平数组temp(i,2:n + 1)相乘,从而创建矩阵X. X被添加到另一个矩阵temp(npos + 1:npos + nneg,2:n + 1)和sub -matrix of A(如上所述)将使用此结果进行更新。