誰かが配列の配列を作成するのを手伝ってくれませんか.私は行列計算機を持っていて、配列の配列を作成したいです(「より小さな」).どうすればいいですか?行列式を計算し、逆行列を計算するには、これらの配列 (主行列のマイナー) の配列が必要です。HTML は次のとおりです。
<div id = "table4">
<div class = "calcHeader">Macierz odwrotna [3x3]</div>
<form id = "row1"><!--first row-->
<input type = "text" class = "det3"/>
<input type = "text" class = "det3"/>
<input type = "text" class = "det3"/>
</form>
<form id = "row2"><!--second row-->
<input type = "text" class = "det3"/>
<input type = "text" class = "det3"/>
<input type = "text" class = "det3"/>
</form>
<form id = "row3"><!--third row-->
<input type = "text" class = "det3"/>
<input type = "text" class = "det3"/>
<input type = "text" class = "det3"/>
</form>
<div class = "count" onclick="invertMat('det3')"><a href = "#">Wylicz</a></div>
</div>
Javascript
function invertMat(matrixClass) {
var matrix = create2Darray(matrixClass);
var det = calculateDet(matrix);
//alert(det);
var invMat = new Array();
for (var i = 0; i < matrix.length; i++) {
invMat[i] = new Array();
for (var j = 0; j < matrix.length; j++) {
invMat[i][j] = 0;
}
}
if (matrix.length == 2) {
invMat[0][0] = 1 / det * matrix[1][1];
invMat[1][0] = 1 / det * (-matrix[1][0]);
invMat[0][1] = 1 / det * (-matrix[0][1]);
invMat[1][1] = 1 / det * matrix[0][0];
alert(invMat);
} else if (matrix.length == 3) {
//var smaller = new Array();//creating an empty array for a matrix minor
for (var i = 0; i < matrix.length; i++) {
var smaller = new Array(matrix.length - 1);
for (h = 0; h < smaller.length; h++) {
smaller[h] = new Array(matrix.length - 1);
}
for (a = 1; a < matrix.length; a++) {
for (b = 0; b < matrix.length; b++) {
if (b < i) {
smaller[a - 1][b] = matrix[a][b];
} else if (b > i) {
smaller[a - 1][b - 1] = matrix[a][b];
}
}
}
}
}
}