1
행렬 역변환을위한 자바 스크립트 코드를 작성 중입니다. 그러나 함수가 실행되지 않는 것처럼 보입니다. 나는 내 역 행렬 입력 행렬 이라고요가 invertedMatrix의 값을 경고 대신의에 넣어 시도 어디에 표시 할 수 있지만 어떤 도움자바 스크립트 행렬 반전
HTML
에 대한 감사 either.Would 작동하지 않았다 싶어<div id = "table3">
<div class = "header">Macierz odwrotna [2x2]</div>
<form id = "row1">
<input type = "text" class = "det2"/><!--first row-->
<input type = "text" class = "det2"/>
</form>
<form id = "row2">
<input type = "text" class = "det2"/><!--second row-->
<input type = "text" class = "det2"/>
</form>
<div class = "count" onclick="invertedMatrix(2,'det2')"><a href = "#">Wylicz</a> </div>
</div>
자바 스크립트
function det(size, className){
var arr = document.getElementsByClassName(className);
var determinant = 0;
if(size == 2){
determinant = (arr[0].value*arr[3].value) - (arr[1].value*arr[2].value);
}
else if(size == 3){
determinant = (arr[0].value*((arr[4].value*arr[8].value) - (arr[5].value * arr[7].value))) -
(arr[1].value*((arr[3].value*arr[8].value) - (arr[5].value * arr[6].value))) +
(arr[2].value*((arr[3].value*arr[7].value) - (arr[4].value * arr[6].value)));
}
return determinant;
}
function invertedMatrix(size,className){
var invertedMatrix = new Array();
var additionalMatrix = new Array();
var matrix = document.getElementsByClassName(className);
if(size == 2){
for(var i = 0; i < matrix.length;i++){
if(i % 2 == 0){
additionalMatrix[i].value = matrix[i].value;
}
else{
additionalMatrix[i].value = -matrix[i].value;
}
}
for(var i = 0;i < matrix.length;i++){
invertedMatrix[i].value = (1/det(2,className)) * additionalMatrix[i].value;
}
}
for(var i = 0;i < matrix.length; i++){
document.getElementsByClassName(className).item(i).value = invertedMatrix[i].value;
}
}
편집 :! 조건 검사를 의뢰하십시오 내가 == 0 || 내가 작성한 것 대신에 i == 2. 그러나 어쨌든 여전히 작동하지 않을 것입니다.
난 정말 DOM에서 행렬을 읽고 그 행렬과 역함수를 계산하는 코드에서 DOM에 쓰는 코드를 분리해야한다고 생각합니다. 이것은 너무 얽혀있다. –