मैट्रिक्स गुणन (Matrix Multiplication)
अब मैट्रिक्स गुणन की प्रक्रिया पर चर्चा की गई है। मैट्रिक्स गुणन केवल तभी किया जा सकता है जब यह कुछ शर्तों को पूरा करता है। मान लीजिए दो मैट्रिक्स P और Q हैं, और उनके आयाम P (a x b) और Q (z x y) हैं, तो परिणाम मैट्रिक्स तभी पाया जा सकता है जब b = z। तब परिणाम मैट्रिक्स R का क्रम (a x y) होगा।
एल्गोरिदम
matrixMultiply(P, Q):
Assume dimension of P is (a x b), dimension of Q is (z x y)
Begin
if b is not same as z, then exit
otherwise define R matrix as (a x y)
for i in range 0 to a - 1, do
for j in range 0 to y - 1, do
for k in range 0 to z, do
R[i, j] = R[i, j] + (P[i, k] * Q[k, j])
done
done
done
End
मैट्रिक्स सामान्यीकरण (Matrix Normalization)
मान लीजिए हमारे पास एक 2x3 मैट्रिक्स है: 4 5 6 1 2 3 सामान्यीकृत मैट्रिक्स होगा: 4/sqrt(pow(5,2) + pow(6,2)) 5/sqrt(pow(5,2) + pow(6,2)) 6/sqrt(pow(5,2) + pow(6,2)) 1/sqrt(pow(2,2) + pow(3,2)) 2/sqrt(pow(2,2) + pow(3,2)) 3/sqrt(pow(2,2) + pow(3,2))
उदाहरण
#include <stdio.h>
#include <math.h>
int main() {
int row, col, row1, col1;
int assignMatrix[50][50], rowAdd[100] = {0};
long long int a, square[50] = {0};
double norm[50][50], k;
printf("Enter size of a matrix\n");
scanf("%d %d", &row, &col);
printf("Enter matrix of size %dX%d\n", row, col);
for (row1 = 0; row1 < row; row1++) {
for (col1 = 0; col1 < col; col1++) {
scanf("%d", &assignMatrix[row1][col1]);
}
}
printf("\nrows: %d cols: %d elements:\n", row, col);
for (row1 = 0; row1 < row; row1++) {
for (col1 = 0; col1 < col; col1++) {
printf("%d ", assignMatrix[row1][col1]);
}
printf("\n");
}
for (row1 = 0; row1 < row; row1++) {
for (col1 = 1; col1 < col; col1++) {
a = assignMatrix[row1][col1];
square[row1] += a * a;
}
printf("Sum of squares of row %d: %lld\n", row1, square[row1]);
}
for (row1 = 0; row1 < row; row1++) {
k = 1.0 / sqrt(square[row1]);
for (col1 = 0; col1 < col; col1++) {
norm[row1][col1] = k * assignMatrix[row1][col1];
}
}
printf("\nNormalized Matrix:\n");
for (row1 = 0; row1 < row; row1++) {
for (col1 = 0; col1 < col; col1++) {
printf("%.3lf ", norm[row1][col1]);
}
printf("\n");
}
return 0;
}
आउटपुट
Enter size of a matrix 2 3 Enter matrix of size 2X3 4 5 6 1 2 3 rows: 2 cols: 3 elements: 4 5 6 1 2 3 Sum of squares of row 0: 61 Sum of squares of row 1: 13 Normalized Matrix: 0.512 0.640 0.768 0.277 0.555 0.832 Process returned 0 (0x0) execution time : 12.446 s Press any key to continue.