0

我是 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(温度(i,2:n + 1))?

并通过相同的推理 temp(npos+1:npos+nneg,2:n+1) 的范围之一或全部加起来?

4

1 回答 1

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) 是一个矩阵,而 one(nneg,1)*temp(i,2: n+1) 当然也是一个大小相同的矩阵,它只包含 1。

(i-1)*nneg+1 和 i*nneg 都是整数,其中 (i-1)*nneg+1 <= i*nneg。这两个整数定义了 A 的子矩阵,其值将被更新。

one(nneg,1) 创建一个长度为 nneg 的垂直数组 [1,1,1,1...]。然后将其与水平数组 temp(i,2:n+1) 相乘,从而创建一个矩阵 X。X 被添加到另一个矩阵 temp(npos+1:npos+nneg,2:n+1),然后A 的 -matrix (上面解释过)用这个结果更新。

于 2013-03-26T13:45:44.070 回答