当前位置:网站首页>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 .
边栏推荐
- [while your roommate plays games, let's see a problem]
- Relational algebra of tyut Taiyuan University of technology 2022 database
- Conceptual model design of the 2022 database of tyut Taiyuan University of Technology
- Record: the solution of MySQL denial of access when CMD starts for the first time
- View UI Plus 发布 1.1.0 版本,支持 SSR、支持 Nuxt、增加 TS 声明文件
- 用栈实现队列
- 十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩
- Rich Shenzhen people and renting Shenzhen people
- 初识指针笔记
- 如何保障 MySQL 和 Redis 的数据一致性?
猜你喜欢
MySQL Database Constraints
Conceptual model design of the 2022 database of tyut Taiyuan University of Technology
(ultra detailed onenet TCP protocol access) arduino+esp8266-01s access to the Internet of things platform, upload real-time data collection /tcp transparent transmission (and how to obtain and write L
系统设计学习(一)Design Pastebin.com (or Bit.ly)
面试必备:聊聊分布式锁的多种实现!
2-year experience summary, tell you how to do a good job in project management
System design learning (III) design Amazon's sales rank by category feature
Pit avoidance Guide: Thirteen characteristics of garbage NFT project
3.猜数字游戏
Quickly generate illustrations
随机推荐
TYUT太原理工大学2022数据库大题之数据库操作
Tyut Taiyuan University of technology 2022 introduction to software engineering
Alibaba cloud microservices (IV) service mesh overview and instance istio
167. Sum of two numbers II - input ordered array - Double pointers
更改VS主题及设置背景图片
阿里云一面:并发场景下的底层细节 - 伪共享问题
Common method signatures and meanings of Iterable, collection and list
165. Compare version number - string
Small exercise of library management system
TYUT太原理工大学2022软工导论大题汇总
Set container
Questions and answers of "basic experiment" in the first semester of the 22nd academic year of Xi'an University of Electronic Science and technology
Several high-frequency JVM interview questions
Tyut Taiyuan University of technology 2022 "Mao Gai" must be recited
TYUT太原理工大学2022数据库大题之分解关系模式
1.初识C语言(1)
2-year experience summary, tell you how to do a good job in project management
阿里云微服务(二) 分布式服务配置中心以及Nacos的使用场景及实现介绍
Smart classroom solution and mobile teaching concept description
arduino+水位传感器+led显示+蜂鸣器报警