You took an example of The Product AB is determined as the dot products of the ith row in A and the jth column in B,placed in ith row and jth column of the resulting m x p matrix C.
so: this may help you.
#include <stdio.h>
#include <stdlib.h>
// function prototypes
void Matrix_Mult( int a1[][3], int a2[][4], int a3[][4] );
void Matrix_MultAlt( int a1[][3], int a2[][4], int a3[][4] );
int dot3(const int a1[][3], const int a2[][4], int row, int col);
void PrnNx4 (int ar[][4], int n);
//---------------------------------------------------------------------------------
// Function: main(void)
// Description:
// demonstration of Matrix Multiplication
//
// Programmer: Paul Bladek
//
// Date: 10/31/2001
//
// Version: 1.0
//
// Environment: Hardware:IBM Pentium 4
// Software: Microsoft XP with .NET framework for execution;
// Compiles under Microsoft Visual C++.Net 2005
//
// Calls: Matrix_Mult(int a1[][3], int a2[][4], int a3[][4])
// Matrix_MultAlt(int a1[][3], int a2[][4], int a3[][4])
// PrnNx4(int ar[][4]
//
//
// Parameters: int a1[][3] -- left matrix
// int a2[][4] -- right matrix
// int a3[][4] -- answer matrix
//
// Returns: EXIT_SUCCESS
// ------------------------------------------------------------------------------
int main(void)
{
int A[2][3] = {{1, 3, 4},
{2, 0, 1}},
B[3][4] = {{1, 2, 3, 1},
{2, 2, 2, 2},
{3, 2, 1, 4}},
C[2][4] = {{0, 0, 0, 0},
{0, 0, 0, 0}};
Matrix_Mult(A, B, C);
PrnNx4(C, 2);
Matrix_MultAlt(A, B, C); // alternate form that calls dot3
PrnNx4(C, 2);
return EXIT_SUCCESS;
}
//---------------------------------------------------------------------------------
// Function: Matrix_Mult(int a1[][3], int a2[][4], int a3[][4])
// Description:
// multiplies a 2X3 matrix by a 3X4 matrix
//
// Programmer: Paul Bladek
//
// Date: 10/31/2001
//
// Version: 1.0
//
// Environment: Hardware:IBM Pentium 4
// Software: Microsoft XP with .NET framework for execution;
// Compiles under Microsoft Visual C++.Net 2005
//
// Calls: None
//
// Called By: main()
//
// Parameters: int a1[][3] -- left matrix
// int a2[][3] -- right matrix
// int a3[][3] -- answer matrix
// ------------------------------------------------------------------------------
void Matrix_Mult(int a1[][3], int a2[][4], int a3[][4])
{
int i = 0;
int j = 0;
int k = 0;
for(i = 0; i < 2; i++)
for( j = 0; j < 4; j++)
for( k = 0; k < 3; k++)
a3[i][j] += a1[i][k] * a2[k][j];
}
//---------------------------------------------------------------------------------
// Function: Matrix_MultAlt(int a1[][3], int a2[][4], int a3[][4])
// Description:
// multiplies a 2X3 matrix by a 3X4 matrix -- Alternate Form
//
// Programmer: Paul Bladek
//
// Date: 10/31/2001
//
// Version: 1.0
//
// Environment: Hardware:IBM Pentium 4
// Software: Microsoft XP with .NET framework for execution;
// Compiles under Microsoft Visual C++.Net 2005
//
// Calls: dot3(const int a1[][3], const int a2[][4], int row, int col)
//
// Called By: main()
//
// Parameters: int a1[][3] -- left matrix
// int a2[][3] -- right matrix
// int a3[][3] -- answer matrix
// ------------------------------------------------------------------------------
void Matrix_MultAlt(int a1[][3], int a2[][4], int a3[][4])
{
int i = 0;
int j = 0;
for( i = 0; i < 2; i++)
for( j = 0; j < 4; j++)
a3[i][j] = dot3(a1, a2, i, j);
}
//---------------------------------------------------------------------------------
// Function: dot3(const int a1[][3], const int a2[][4], int row, int col)
// Description:
// dot product of a1 row and a2 col
//
// Programmer: Paul Bladek
//
// Date: 10/31/2001
//
// Version: 1.0
//
// Environment: Hardware:IBM Pentium 4
// Software: Microsoft XP with .NET framework for execution;
// Compiles under Microsoft Visual C++.Net 2005
//
// Calls: None
//
// Called By: Matrix_MultAlt(int a1[][3], int a2[][4], int a3[][4])
//
// Parameters: int a1[][3] -- left matrix
// int a2[][3] -- right matrix
// int row -- the row number
// int col -- the column number
//
// Returns: the dot product
// ------------------------------------------------------------------------------
int dot3(const int a1[][3], const int a2[][4], int row, int col)
{
int k = 0;
int sum = 0;
for( k = 0; k < 3; k++)
sum += a1[row][k] * a2[k][col];
return sum;
}
//---------------------------------------------------------------------------------
// Function: PrnNx4(int ar[][4], int n)
// Description:
// prints out an NX4 matrix
//
// Programmer: Paul Bladek
//
// Date: 10/31/2001
//
// Version: 1.0
//
// Environment: Hardware:IBM Pentium 4
// Software: Microsoft XP with .NET framework for execution;
// Compiles under Microsoft Visual C++.Net 2005
//
// Called By: main()
//
// Parameters: int ar[][4] -- matrix to print
// int n -- number of elements
// ------------------------------------------------------------------------------
void PrnNx4 (int ar[][4], int n)
{
int i = 0;
int j = 0;
for(i = 0; i < n; i++)
{
for( j = 0; j < 4; j++)
printf("%4d", ar[i][j]);
putchar('\n');
}
}
what is the disadvantage of sparse matrix?
C Examples on Matrix OperationsA matrix is a rectangular array of numbers or symbols arranged in rows and columns. The following section contains a list of C programs which perform the operations of Addition, Subtraction and Multiplication on the 2 matrices. The section also deals with evaluating the transpose of a given matrix. The transpose of a matrix is the interchange of rows and columns.The section also has programs on finding the trace of 2 matrices, calculating the sum and difference of two matrices. It also has a C program which is used to perform multiplication of a matrix using recursion.C Program to Calculate the Addition or Subtraction & Trace of 2 MatricesC Program to Find the Transpose of a given MatrixC Program to Compute the Product of Two MatricesC Program to Calculate the Sum & Difference of the MatricesC Program to Perform Matrix Multiplication using Recursion
using multidimensional array
A Hadamard Matrix is a square matrix composed of 1 or -1. Using a square matrix system the hadamard matrix could be created
It's matrix C.
Poor boy
The matrix multiplication in c language : c program is used to multiply matrices with two dimensional array. This program multiplies two matrices which will be entered by the user.
what is the disadvantage of sparse matrix?
C Examples on Matrix OperationsA matrix is a rectangular array of numbers or symbols arranged in rows and columns. The following section contains a list of C programs which perform the operations of Addition, Subtraction and Multiplication on the 2 matrices. The section also deals with evaluating the transpose of a given matrix. The transpose of a matrix is the interchange of rows and columns.The section also has programs on finding the trace of 2 matrices, calculating the sum and difference of two matrices. It also has a C program which is used to perform multiplication of a matrix using recursion.C Program to Calculate the Addition or Subtraction & Trace of 2 MatricesC Program to Find the Transpose of a given MatrixC Program to Compute the Product of Two MatricesC Program to Calculate the Sum & Difference of the MatricesC Program to Perform Matrix Multiplication using Recursion
for(int i=0;i
using multidimensional array
A Hadamard Matrix is a square matrix composed of 1 or -1. Using a square matrix system the hadamard matrix could be created
Memory allocation is not necessary to display a matrix.
The C matrix library provides features for creating and manipulating matrices, including functions for matrix addition, subtraction, multiplication, and transposition. It also offers capabilities for solving linear equations, calculating determinants, and performing matrix decompositions. Additionally, the library supports various matrix operations such as inversion, eigenvalue calculation, and singular value decomposition.
#include<
By rule of matrix multiplication the number of rows in the first matrix must equal the number of rows in the second matrix. If A is an axb matrix and B is a cxd matrix, then a = d. Then if BA is defined, then c = b. This means that B is not necessarily mxn, but must be nxm.
It's matrix C.