当前位置:网站首页>1. C language matrix addition and subtraction method
1. C language matrix addition and subtraction method
2022-07-06 13:26:00 【It's Wang Jiujiu】
Catalog
2. Function writing ( Array form and pointer form )
1. principle
The conditions that matrix addition needs to meet : Two added matrices need to keep the same dimension , Matrix A+B,A The line of 、 Column =B The line of 、 Column .
Principle of addition and subtraction : The principle of matrix addition is very simple , Add or subtract the corresponding position .
for example :
2. Function writing ( Array form and pointer form )
Because the addition and subtraction method is relatively simple , So just use two for Loop through the entire array , Add or subtract the corresponding bit , Here is an example of addition .
At the beginning of the function, you need to use assert Assert whether the condition holds , If not, the system will prompt an error ,assert Need to include header file <assert.h>, If there is no judgment , After passing in the wrong parameter , The access of two-dimensional array will overflow .
Because the array parameter passes the address , So the type of the function is set to void that will do .
Array form :
// Define the rows and columns of the matrix
#define ROW1 3
#define COL1 3
#define ROW2 3
#define COL2 3
#include<stdio.h>
#include<assert.h>
// Array form
void Matrix_addition(double arr1[][COL1], double arr2[][COL2], double arr3[][COL1],int row1, int col1,int row2,int col2)
{
assert(row1 == row2 && col1 == col2);// The dimension of the judgment matrix is consistent
int i = 0;
int j = 0;
for (i = 0; i < row1; i++)
{
for (j = 0; j < col1; j++)
{
arr3[i][j] = arr1[i][j] + arr2[i][j];
}
}
}
int main()
{
double arr1[ROW1][COL2] = {0};
double arr2[ROW1][COL2] = {9,8,7,6,5,4,3,2,1};
double arr3[ROW1][COL1] = { 0 };
Matrix_addition(arr1, arr2, arr3, ROW1, COL1,ROW2,COL2);
return 0;
}
Pointer form :
// Define the rows and columns of the matrix
#define ROW1 3
#define COL1 3
#define ROW2 3
#define COL2 3
#include<stdio.h>
#include<assert.h>
// Pointer form
void Matrix_addition(double (*arr1)[COL1], double (*arr2)[COL2], double (*arr3)[COL1], int row1, int col1, int row2, int col2)
{
assert(row1 == row2 && col1 == col2);// The dimension of the judgment matrix is consistent
int i = 0;
int j = 0;
for (i = 0; i < row1; i++)
{
for (j = 0; j < col1; j++)
{
*(*(arr3 + i) + j) = *(*(arr1 + i) + j) + *(*(arr2 + i) + j);
}
}
}
int main()
{
double arr1[ROW1][COL2] = {0};
double arr2[ROW1][COL2] = {9,8,7,6,5,4,3,2,1};
double arr3[ROW1][COL1] = { 0 };
Matrix_addition(arr1, arr2, arr3, ROW1, COL1,ROW2,COL2);
return 0;
}
Both forms can , There's no difference in nature , Use it according to your preferences . use define Define the rows and columns of the array , The advantage is flexibility , Easy to use , Subsequently, you only need to change the relevant parameters of the input matrix to perform the operation .
Matrix multiplication is slightly more difficult than addition ,C Linguistic matrix multiplication There is a detailed explanation of .
边栏推荐
- TYUT太原理工大学2022数据库大题之分解关系模式
- Network layer 7 protocol
- Application architecture of large live broadcast platform
- TYUT太原理工大学2022数据库之关系代数小题
- Questions and answers of "signal and system" in the first semester of the 22nd academic year of Xi'an University of Electronic Science and technology
- 12 excel charts and arrays
- Data manipulation language (DML)
- 一文搞定 UDP 和 TCP 高频面试题!
- 13 power map
- Atomic and nonatomic
猜你喜欢
随机推荐
Branch and loop statements
Small exercise of library management system
C语言实现扫雷游戏(完整版)
Alibaba cloud microservices (I) service registry Nacos, rest template and feign client
Cloud native trend in 2022
CorelDRAW plug-in -- GMS plug-in development -- Introduction to VBA -- GMS plug-in installation -- Security -- macro Manager -- CDR plug-in (I)
3.C语言用代数余子式计算行列式
Implement queue with stack
2年经验总结,告诉你如何做好项目管理
First acquaintance with C language (Part 2)
[while your roommate plays games, let's see a problem]
Record: newinstance() obsolete replacement method
Aurora system model of learning database
最新坦克大战2022-全程开发笔记-2
Floating point comparison, CMP, tabulation ideas
4.分支语句和循环语句
Tyut Taiyuan University of technology 2022 introduction to software engineering summary
继承和多态(下)
Interview Essentials: talk about the various implementations of distributed locks!
5.MSDN的下载和使用