행렬곱셈 미치겠어요..
글쓴이: geneven / 작성시간: 금, 2003/11/28 - 1:02오전
main() { double A[2][2] = {{1,2}, {3,4}}; double R[2][2]; int n = 2; int nmax = 2; matmult((double *)A, (double *)A, nmax, n, (double *)R); } int matmult(double A[], double reverse_A[], int nmax, int n, double RESULT[]) { double temp = 0; int i,j,k; for(i = 0; i <=n; i++){ for(j = 0; j <= n; j++){ for(k = 0; k <= n; k++){ temp = A[k+i*nmax]*reverse_A[j+k*nmax]+temp; } RESULT[j+i*nmax] = temp; temp = 0; } } }
이거 만든후에 A값을 출력하면 이상한 값이 출력됩니다. 즉, A에는 분명히
1,2,3,4를 넣었는데 matmult함수를 갔다오고 나서는 쓰레기 값이 들어갑니다
matmult함수에는 분명히 A를 건드리는 어떠한 부분도 없는데 말입니다..
B라는 행렬을 만들어서 matmult 두번째 인자에 집어넣으면 역시 B에 쓰레기
값이 들어갑니 다 TT matmult를 실행안하면 B는 정상적으로 출력되고요..
왜 이러죠?
Forums:
...
matmult() 안의 세개의 for문 안에
<= 을 < 로 해야 하지 않나요...
http//bbs.kldp.org/viewtopic.php?t=25496
http//bbs.kldp.org/viewtopic.php?t=25496
참고하시길.
세벌 https://sebuls.blogspot.kr/
댓글 달기