我正在浏览一个来自这个网站的缩减行梯形图代码:http://rosettacode.org/wiki/Reduced_row_echelon_form#JavaScript我试图把它放到更简单的代码中,以便我能理解每条指令的作用。然后我遇到了:while(this.mtx [i] [lead] == 0)。我理解this.mtx [i]是什么,但我不知道在mtx [i]之后正确的情况下[领导]是什么。非常感谢您的帮助。这是代码:
Matrix.prototype.toReducedRowEchelonForm = function() {
var lead = 0;
for (var r = 0; r < this.rows(); r++) {
if (this.columns() <= lead) {
return;
}
var i = r;
while (this.mtx[i][lead] == 0) {
i++;
if (this.rows() == i) {
i = r;
lead++;
if (this.columns() == lead) {
return;
}
}
}
var tmp = this.mtx[i];
this.mtx[i] = this.mtx[r];
this.mtx[r] = tmp;
var val = this.mtx[r][lead];
for (var j = 0; j < this.columns(); j++) {
this.mtx[r][j] /= val;
}
for (var i = 0; i < this.rows(); i++) {
if (i == r) continue;
val = this.mtx[i][lead];
for (var j = 0; j < this.columns(); j++) {
this.mtx[i][j] -= val * this.mtx[r][j];
}
}
lead++;
}
return this;
}