将matlab命令转换为c#

时间:2013-03-26 13:33:00

标签: matlab

我是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)或全部加起来?

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(如上所述)将使用此结果进行更新。