| New Reply |
C matrix multiplication |
Share Thread | Thread Tools |
| Jun10-11, 06:12 PM | #1 |
|
|
C matrix multiplication
Hello,
I am trying to write a program that multiplies together two 3x3 matrices. However my program does not really work as intended, and i get some really strange results. Any ideas? Code:
#include <stdio.h>
#include <stdlib.h>
int main() {
int result_matrix[3][3];
int matrixA[3][3] = { {2,2,2},
{2,2,2},
{2,2,2} };
int matrixB[3][3] = { {4,4,4},
{4,4,4},
{4,4,4} };
for(int rows=0; rows<3; rows++) {
for(int columns=0; columns<3; columns++){
for(int r=0,c=0; r<3,c<3; r++,c++){
printf("Element at result_matrix[%d][%d] is MatrixA[%d][%d] * MatrixB[%d][%d]\n",rows,columns,r,c,c,r);
result_matrix[rows][columns] += matrixA[r][c] * matrixB[c][r];
}
}
}
printf("%d\n",result_matrix[0][0]);
printf("%d\n",result_matrix[0][1]);
printf("%d\n",result_matrix[0][2]);
printf("%d\n",result_matrix[1][0]);
printf("%d\n",result_matrix[1][1]);
printf("%d\n",result_matrix[1][2]);
printf("%d\n",result_matrix[2][0]);
printf("%d\n",result_matrix[2][1]);
printf("%d\n",result_matrix[2][2]);
return 0;
}
|
| PhysOrg.com |
science news on PhysOrg.com >> Hong Kong launches first electric taxis >> Morocco to harness the wind in energy hunt >> Galaxy's Ring of Fire |
| Jun10-11, 06:27 PM | #2 |
|
|
There's no initialization of the elements of result_matrix.
|
| Jun10-11, 06:29 PM | #3 |
|
Recognitions:
|
Hi James889!
![]() And you inner loop is not right. For starters, it should not cycle over r and c, but only over c. |
| Jun10-11, 07:23 PM | #4 |
|
|
C matrix multiplicationCode:
Element at result_matrix[0][0] is: 25 Element at result_matrix[0][1] is: 24 Element at result_matrix[0][2] is: 24 Element at result_matrix[1][0] is: 25 Element at result_matrix[1][1] is: 24 Element at result_matrix[1][2] is: -1077941132 Element at result_matrix[2][0] is: -1077941124 Element at result_matrix[2][1] is: 672789176 Element at result_matrix[2][2] is: -1077941296 This is after i changed the inner loop to only loop through c |
| Jun10-11, 08:51 PM | #5 |
|
Recognitions:
|
![]() Do you see the difference with your code? Furthermore, MisterX already remarked that you need to initialize your result matrix to zero before trying to multiply the matrices. Cheers!
|
| Jun11-11, 03:04 AM | #6 |
|
|
Code:
result_matrix[3][3] = { {0} };
Code:
Element at result_matrix[0][0] is: 24 Element at result_matrix[0][1] is: 24 Element at result_matrix[0][2] is: 24 Element at result_matrix[1][0] is: 24 Element at result_matrix[1][1] is: 24 Element at result_matrix[1][2] is: 24 Element at result_matrix[2][0] is: 24 Element at result_matrix[2][1] is: 24 Element at result_matrix[2][2] is: 24
|
| Jun11-11, 03:26 AM | #7 |
|
Recognitions:
|
|
| Jun11-11, 12:27 PM | #8 |
|
|
Code:
result_matrix[3][3] = { {0, 0, 0}, {0, 0, 0}, {0, 0, 0} };
|
| New Reply |
| Thread Tools | |
Similar Threads for: C matrix multiplication
|
||||
| Thread | Forum | Replies | ||
| Matrix Multiplication and Algebraic Properties of Matrix Operations | Calculus & Beyond Homework | 2 | ||
| Matrix multiplication | Precalculus Mathematics Homework | 2 | ||
| Matrix multiplication | Calculus & Beyond Homework | 0 | ||
| matrix multiplication | Linear & Abstract Algebra | 1 | ||
| matrix multiplication | Linear & Abstract Algebra | 1 | ||