当前位置:网站首页>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 .
边栏推荐
- arduino+DS18B20温度传感器(蜂鸣器报警)+LCD1602显示(IIC驱动)
- TYUT太原理工大学2022数据库之关系代数小题
- 167. Sum of two numbers II - input ordered array - Double pointers
- Record: the solution of MySQL denial of access when CMD starts for the first time
- Conceptual model design of the 2022 database of tyut Taiyuan University of Technology
- Quickly generate illustrations
- 初识C语言(上)
- Network layer 7 protocol
- TYUT太原理工大学2022数据库大题之分解关系模式
- MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series
猜你喜欢
随机推荐
3.输入和输出函数(printf、scanf、getchar和putchar)
最新坦克大战2022-全程开发笔记-1
Atomic and nonatomic
View UI plus released version 1.3.1 to enhance the experience of typescript
Aurora system model of learning database
学编程的八大电脑操作,总有一款你不会
12 excel charts and arrays
十分鐘徹底掌握緩存擊穿、緩存穿透、緩存雪崩
3.猜数字游戏
阿里云微服务(四) Service Mesh综述以及实例Istio
凡人修仙学指针-2
Design a key value cache to save the results of the most recent Web server queries
[中国近代史] 第九章测验
Arduino+ds18b20 temperature sensor (buzzer alarm) +lcd1602 display (IIC drive)
初识指针笔记
(super detailed II) detailed visualization of onenet data, how to plot with intercepted data flow
Implement queue with stack
FileInputStream和BufferedInputStream的比较
Tyut outline of 2022 database examination of Taiyuan University of Technology
一文搞定 UDP 和 TCP 高频面试题!









