当前位置:网站首页>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 temperature sensor (buzzer alarm) +lcd1602 display (IIC drive)
- Iterable、Collection、List 的常见方法签名以及含义
- TYUT太原理工大学2022数据库大题之数据库操作
- 1.C语言初阶练习题(1)
- MySQL limit x, -1 doesn't work, -1 does not work, and an error is reported
- (super detailed II) detailed visualization of onenet data, how to plot with intercepted data flow
- 3.猜数字游戏
- 用栈实现队列
- 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
- Comparison between FileInputStream and bufferedinputstream
猜你喜欢

最新坦克大战2022-全程开发笔记-1

View UI plus released version 1.3.0, adding space and $imagepreview components

IPv6 experiment

TYUT太原理工大学2022“mao gai”必背

如何保障 MySQL 和 Redis 的数据一致性?

Interview Essentials: talk about the various implementations of distributed locks!

2.C语言初阶练习题(2)

String类

Smart classroom solution and mobile teaching concept description

7.数组、指针和数组的关系
随机推荐
1.初识C语言(1)
凡人修仙学指针-2
View UI Plus 发布 1.2.0 版本,新增 Image、Skeleton、Typography组件
Introduction pointer notes
[中国近代史] 第九章测验
20220211-CTF-MISC-006-pure_ Color (use of stegsolve tool) -007 Aesop_ Secret (AES decryption)
Rich Shenzhen people and renting Shenzhen people
Summary of multiple choice questions in the 2022 database of tyut Taiyuan University of Technology
更改VS主题及设置背景图片
Quickly generate illustrations
Common method signatures and meanings of Iterable, collection and list
Differences and application scenarios between MySQL index clock B-tree, b+tree and hash indexes
5.MSDN的下载和使用
Tyut outline of 2022 database examination of Taiyuan University of Technology
View UI Plus 发布 1.3.0 版本,新增 Space、$ImagePreview 组件
String class
Alibaba cloud microservices (II) distributed service configuration center and Nacos usage scenarios and implementation introduction
2.C语言初阶练习题(2)
View UI plus releases version 1.1.0, supports SSR, supports nuxt, and adds TS declaration files
Tyut Taiyuan University of technology 2022 introduction to software engineering