代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <random>
#define ROWS 4
#define COLUMNS 5
typedef struct  Twodimensionalmatrix_
{int rows;int columns;int **elements;
}Twodimensionalmatrix,*twodimensionalmatrix;
twodimensionalmatrix initwodimensionalmatrix(int row ,int column){twodimensionalmatrix resultptr=(twodimensionalmatrix)malloc(sizeof(Twodimensionalmatrix));resultptr->rows = row;resultptr->columns = column;resultptr->elements = (int**)malloc(row * sizeof(int*));for (int i = 0; i < row; i ++){resultptr->elements[i] = (int*)malloc(column * sizeof(int));}return resultptr;
}
//随机生成矩阵的元素
twodimensionalmatrix randassitwodimensionalmatrix(twodimensionalmatrix paraPtr, int paraLowerBound, int paraUpperBound){int i, j;   for (i = 0; i < paraPtr->rows; i ++){for (j = 0; j < paraPtr->columns; j ++) {paraPtr->elements[i][j] = rand() % (paraUpperBound - paraLowerBound) + paraLowerBound;}}return paraPtr;
}
void printtwodimensionalmatrix(twodimensionalmatrix paraptr){for (int i=0;i<paraptr->rows;i++){for (int j=0;j<paraptr->columns;j++){printf("%d ",paraptr->elements[i][j]);}printf("\n");}printf("\n");
}
//矩阵乘法
twodimensionalmatrix multtwodimensionalmatrix(twodimensionalmatrix paraptr1,twodimensionalmatrix paraptr2,twodimensionalmatrix resultparaptr){int result;for (int i=0;i<paraptr1->rows;i++){for (int j=0;j<paraptr2->columns;j++){result=0;for (int k=0;k<paraptr1->columns;k++){result=result+paraptr1->elements[i][k]*paraptr2->elements[k][j];}resultparaptr->elements[i][j]=result;}}return resultparaptr;
}
void testsample(){twodimensionalmatrix matrix1=initwodimensionalmatrix(4,4);matrix1=randassitwodimensionalmatrix(matrix1,0,9);printtwodimensionalmatrix(matrix1);twodimensionalmatrix matrix2=initwodimensionalmatrix(4,4);matrix2=randassitwodimensionalmatrix(matrix2,0,9);printtwodimensionalmatrix(matrix2);twodimensionalmatrix matrix3=initwodimensionalmatrix(4,4);matrix3=multtwodimensionalmatrix(matrix1,matrix2,matrix3);printtwodimensionalmatrix(matrix3);
}
int main(){testsample();return 0;
}

运行结果:

总结:

代码只实现了二维矩阵的创建,随机填值,打印,及其乘法功能,本编代码看似复杂,其实原理挺简单的,理解到了很好写的。注意点的话,乘法的时候要分清什么时候是该什么相乘就行,其实离散数学学好了的话是完全OK的

数据结构--二维矩阵及其乘法相关推荐

  1. 2017西安交大ACM小学期数据结构 [分块、二维矩阵]

    Problem B 发布时间: 2017年6月28日 10:06   最后更新: 2017年6月28日 16:35   时间限制: 2000ms   内存限制: 32M 描述 给定一个n×m的矩形, ...

  2. python三维矩阵乘法_tensorflow 二维矩阵乘以三维矩阵,高维矩阵相乘

    最近看论文时看到了一个让我费解的操作. 二维矩阵 * 三维矩阵 * 二维矩阵 得到了一个二维矩阵. 即: (n * c1) x (m * c1 * c2) x (n * c2) 得 n * m 实现主 ...

  3. 二维矩阵乘法、矩阵转置、 矩阵与向量乘法(java实现)

    二维矩阵乘法.矩阵转置. 矩阵与向量乘法(java实现) 相关代码如下: package algorithms; //矩阵库 public class Matrisx { /***向量点相乘 doub ...

  4. 机器学习之数学基础(二)~数组、向量、矩阵、向量空间、二维矩阵

    1. 概述 在学习机器学习(machine learning)或模式识别(pattern recognition)过程中,我经常会困惑于向量.数组和矩阵这三种数据结构,而在学习张学工教授<模式识 ...

  5. LeetCode 73矩阵置零74搜素二维矩阵75颜色分类

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  6. 【CV】图像卷积计算即二维矩阵卷积(Python)

    卷积与数字图像 什么是卷积 一维线性卷积 参数'full' 参数'same' 参数'valid' 二维线性卷积 什么是卷积 一维线性卷积 线性卷积(linear convolution) 在时域描述线 ...

  7. matlab三维数组与二维矩阵相乘问题

    Matlab三维数组与二维矩阵相乘问题 近来在搞一个改进近场music算法的仿真问题,用matlab进行二维搜索的时候写了很多for循环,导致运行速度极慢.考虑到matlab语言本身的矩阵运算特点,改 ...

  8. Numpy二维矩阵与三维矩阵的乘积

    乘法运算类型及其定义 ndarry情况下: 运算符号* - 逐元素相乘 np.multiply(a,b)----逐元素相乘 np.dot(a, b)----两个二维矩阵满足第一个矩阵的列数与第二个矩阵 ...

  9. C++中关于二维矩阵和三维矩阵的计算

    1.二维数据矩阵的乘法: #include<iostream> #include<math.h> #include<string> using namespace ...

最新文章

  1. Eclipse关联JDK源码
  2. 图解观察托管程序线程
  3. python与图书编辑
  4. k5b型计算机联锁知识,DS6-K5B计算机联锁系统日常维护注意事项
  5. Android安全与逆向之在ubuntu上面搭建NDK环境
  6. Python自动绘制UML类图、函数调用图(Call Graph)
  7. 【网络安全入门大总结】—Java语言中常用的渗透漏洞大汇总
  8. 微软开发趣史 | 我们之所以叫它 RAID 是因为它能干掉 BUG
  9. laravel 5.4 引入自定义类
  10. Android应用开发环境搭建
  11. USB Server解决虚拟化部署UKey远程调用
  12. 苹果开发者账号申请说明
  13. 障碍物参考线交通规则融合器:Frame类
  14. 百度爬虫robots.txt文件规范
  15. 关闭微信内置浏览器页面
  16. 基于cc3200开发
  17. 四、转换成BCNF的保持无损连接的分解
  18. 单波段彩色变换(伪彩色密度分割)
  19. Flutter实践之高仿有妖气漫画,2021大厂Android开发面试总结+解答
  20. Gmapping Dropped 100.00% of messages so far 解决办法

热门文章

  1. 我是如何要到京东客服小姐姐的QQ的
  2. JetBrains WebStorm 2022.2 Crack
  3. Crackme 24
  4. Cramér-Rao bound 克拉美罗界(转)
  5. 百度地图鼠标经过图层时高亮显示图标及标签内容
  6. github java排课系统_团队-排课系统-开发文档
  7. 分布式存储系统:4.容错
  8. 人造金刚石 量子计算机,科学家确认“不可能的”时间晶体真的存在,或致量子计算机的突破...
  9. 2020年笔记本电脑选购指南
  10. Feature Squeezing