Added addition and multiplication to new version, still no functionality with accessing the matrix information

This commit is contained in:
= 2025-11-20 14:42:57 +01:00
parent 8b1eecfb5c
commit 19910ab17f
2 changed files with 33 additions and 4 deletions

View File

@ -87,10 +87,39 @@ MatrixType getMatrixAt(const Matrix matrix, unsigned int rowIdx, unsigned int co
Matrix add(const Matrix matrix1, const Matrix matrix2)
{
//check if the matrices are able to be added (same size)
if (matrix1.cols == matrix2.cols && matrix1.rows == matrix2.rows){
//size of the matrices should be the same, if the addition is supposed to happen
Matrix outputMatrix = createMatrix(matrix1.rows, matrix1.cols);
for (int i = 0; i < matrix1.rows;i++) {
for (int j = 0; j < matrix1.cols; j++) {
// I dont exactly know how the input for the matrix is set, so this is only the explanation on how to do the math
// outputMatrix.buffer[i][j] = matrix1.buffer[i][j] + matrix2.buffer[i][j];
}
}
} else {
//no matrix could be added, consequence should be defined
// return NULL;
}
}
Matrix multiply(const Matrix matrix1, const Matrix matrix2)
{
//check, if the matrices can be multiplied
if (matrix1.rows == matrix2.cols) {
Matrix outputMatrix = createMatrix(matrix1.rows, matrix2.cols);
for(int i = 0; i < matrix1.rows; i++) {
for (int j = 0; j < matrix2.cols; j++) {
for (int k = 0; k < matrix2.rows; k++) {
// I dont exactly know how the input for the matrix is set, so this is only the explanation on how to do the math
// outputMatrix.buffer[i][j] = matrix1.buffer[i][k] * matrix2[k][j];
}
}
}
return outputMatrix;
} else {
//no matrix could be added, consequence should be defined
// return NULL;
}
}

View File

@ -7,8 +7,8 @@ typedef float MatrixType;
// TODO Matrixtyp definieren
typedef struct Matrix {
size_t rows;
size_t cols;
size_t rows; //X-Element
size_t cols; //Y-Element
MatrixType *buffer;
} Matrix;