当前位置: 首页 > wzjs >正文

asp做静态网站个人网站推广

asp做静态网站,个人网站推广,思途智旅游网站开发,wordpress调用热门文章目录 Day 7:Java 的数组与矩阵元素相加 一、基本知识 二、矩阵的建立与基本计算 三、代码及测试 拓展:Arrays类详解 小结 Day 7:Java 的数组与矩阵元素相加 Task: 矩阵的赋值.二重循环. 一、基本知识 在学习 Java 中的数组与矩…

目录

Day 7:Java 的数组与矩阵元素相加

 一、基本知识

 二、矩阵的建立与基本计算

三、代码及测试

拓展:Arrays类详解

小结


Day 7:Java 的数组与矩阵元素相加

Task:

  • 矩阵的赋值.
  • 二重循环.

 一、基本知识

        在学习 Java 中的数组与矩阵前,我们需要以下两个基本知识:

  • 动态创建
  • Arrays 类

        这部分的知识点请参考相关的 Java 专题补充:
        

 二、矩阵的建立与基本计算

        本博客中,将用代码实现两种基本的矩阵计算:全元素求和,基本加法

1. 矩阵元素总和

        同样的,我们依旧把这个功能封装为单独的函数

	/************************ Sum the elements of a matrix.* * @param paraMatrix The given matrix.* @return The sum of all its elements.**********************/public static int matrixElementSum(int[][] paraMatrix) {int resultSum = 0;for (int i = 0; i < paraMatrix.length; i++) {for (int j = 0; j < paraMatrix[0].length; j++) {resultSum += paraMatrix[i][j];} // Of for j} // Of for ireturn resultSum;}// Of matrixElementSum

        代码不多做解释,通过双层 for 循环即能遍历矩阵中的所有元素。唯一值得注意的是,我们该如何去理解通过数组组成的矩阵?
        首先矩阵的高其实就是矩阵的一维部分,一个矩阵在计算机中可以看做是“一维数列”的数组,把这个数组的元素纵向放置就构成了我们视觉可见的一个“矩形”的数字阵列。而这个“一维数列”的数组的长度自然就是这个阵列的纵向长度,也就是高,是把这个数组的元素纵向放置可以排的行数。因此:

paraMatrix.length

        就是矩阵的宽,或者说行数。
        同理,“一维数列”的数组中的每个元素都是一个一维数列,每个数列的长度就构成了矩阵的长,或者说列数。实际代码中,我们取出“一维数列”的数组的第一个元素,也就是矩阵的第一行,并求这一个行的长度即可:

paraMatrix[0].length

        具体遍历的话,基本所有语言的二维存储都是采用行优先的存储,而普遍的遍历都是先行后列的遍历思想,因此这一点不再赘述。

2. 矩阵相加

        一个优秀的程序是需要有自我报错能力的,比如这里的非法矩阵相加。
        矩阵相加的话需要符合线性代数中矩阵计算的一个基本要求——即相加的双方矩阵必须是同型的。因此注意对于非法情况的判断。

	/************************ Add two matrices. Attention: No error check is provided at this moment.* * @param paraMatrix1 The first matirx.* @param paraMatrix2 The second matrix. It should have the same size as the*                    first one's* @return The addition of these matrices.**********************/public static int[][] matrixAddition(int[][] paraMatrix1, int[][] paraMatrix2) {if(paraMatrix1.length!=paraMatrix2.length || paraMatrix1[0].length!=paraMatrix2[0].length) {System.out.println("Error! Two matrixs must have same height and width! ");}int[][] resultMatrix = new int[paraMatrix1.length][paraMatrix1[0].length];for (int i = 0; i < paraMatrix1.length; i++) {for (int j = 0; j < paraMatrix1[0].length; j++) {resultMatrix[i][j] = paraMatrix1[i][j] + paraMatrix2[i][j];} // Of for j} // Of for ireturn resultMatrix;}// Of matroxAddition

三、代码及测试

package basic;import java.util.Arrays;/*** This is the seventh code. Names and comments should follow my style strictly.** @author: Changyang Hu joe03@foxmail.com* @date created: 2025-05-09*/
public class MatrixAddition {/************************* @Title: main* @Description: The entrance of the program.** @param args Not used now.* @return void************************/public static void main(String args[]) {matrixElementSumTest();matrixAdditionTest();}// Of main/************************* * @Title: matrixElementSun* @Description: Sum the elements of a matrix** @param paraMatrix The given matrix* @return * @return int************************/public static int matrixElementSum(int[][] paraMatrix) {int resultSum = 0;for (int i = 0; i < paraMatrix.length; i++) {for (int j = 0; j < paraMatrix[0].length; j++) {resultSum += paraMatrix[i][j];} // Of for j} // Of for ireturn resultSum;}// Of matrixElementSum/*** ********************** @Title: matrixElementSumTest* @Description: Unit test for respective method.* * @return void **********************/public static void matrixElementSumTest() {int[][] tempMatrix = new int[3][4];for (int i = 0; i < tempMatrix.length; i++) {for (int j = 0; j < tempMatrix[0].length; j++) {tempMatrix[i][j] = i * 10 + j;} // Of for j} // Of for iSystem.out.println("The matrix is: \r\n" + Arrays.deepToString(tempMatrix));System.out.println("The matrix element sum is: " + matrixElementSum(tempMatrix) + "\r\n");}// Of matrixElementSumTest/*** ********************** @Title: matrixAddition* @Description: Add two matrices. Attention: NO error check is provided at this moment.** @param paraMatrix1	The first matrix.* @param paraMatrix2	The second matrix. It should have the same size as*                    	the first one's.* @return The addition of these matrices.* @return int[][] **********************/public static int[][] matrixAddition(int[][] paraMatrix1, int[][] paraMatrix2) {int[][] resultMatrix = new int[paraMatrix1.length][paraMatrix1[0].length];for (int i = 0; i < paraMatrix1.length; i++) {for (int j = 0; j < paraMatrix1[0].length; j++) {resultMatrix[i][j] = paraMatrix1[i][j] + paraMatrix2[i][j];} // Of for j} // Of for ireturn resultMatrix;}// Of matrixAdditon/*** ********************** @Title: matrixAdditionTest* @Description: Unit test for respective method.* * @return void **********************/public static void matrixAdditionTest() {int[][] tempMatrix = new int[3][4];for (int i = 0; i < tempMatrix.length; i++) {for (int j = 0; j < tempMatrix[0].length; j++) {tempMatrix[i][j] = i * 10 + j;} // Of for j} // Of for iSystem.out.println("The matrix is; \r\n" + Arrays.deepToString(tempMatrix));int[][] tempNewMatrix = matrixAddition(tempMatrix, tempMatrix);System.out.println("The new matrix is: \r\n" + Arrays.deepToString(tempNewMatrix));}// Of matrixAdditionTest}// Of class MatricAddtion

运行结果如下:

拓展:Arrays类详解

【Java 专题补充】Arrays类详解-CSDN博客


小结

        java提供了许多的库,而这些库方法能对一些基本的操作进行优化。本篇的矩阵相加并不是很难的一部分,但是却暗示了不同语言的实现思路,不同语言对于数组的声明以及遍历的策略。
        另外本文提到的矩阵也是一种非常重要的数据结构,虽然许多语言对于矩阵实现封装库信息很有限(除开matlab这种从矩阵角度出发的编程语言),但是其包含的算法却仍然非常丰富。在 C,C++,java,python 中都有对应的用于处理矩阵数据的库,这些能为我们提供极大的便捷。因此基于基础的二维数组数据模拟复杂的矩阵算法能极大锻炼我们的代码思维与对矩阵之中包含的数学逻辑的理解。但需要注意的是,在使用这些现成的函数时,要有意识的去理解背后的原理,否则只会成为空有其表的调包侠。
        同时,对于图像的颜色,在计算机中我们常用0-255的数值来表示。所以,一张图像实际上就是一个二维矩阵。这个基础使得矩阵在计算机视觉中的应用中也扮演着关键作用,其中延伸出来的图像处理算法也在继续为后世服务。

http://www.dtcms.com/wzjs/256843.html

相关文章:

  • 产品做网站推广网络培训网站
  • godaddy怎么建设网站个人网页免费域名注册入口
  • 项目从立项到结束的流程图青岛设计优化公司
  • 做批发童车网站有哪些电话营销系统
  • 做网站数据库互联网推广引流公司
  • 建筑网站搜图发布项目信息的平台
  • 网页隐藏网站代码做一个公司网页多少钱
  • 怎么免费制作一个企业网站企业网站设计毕业论文
  • 新手如何做自己的网站新站seo快速排名 排名
  • 网站建设需要服务器吗网站域名注册
  • php 做网站 python8大营销工具指的是哪些
  • 信息安全网站建设方案书适合中层管理的培训
  • ios移动网站开发企业网站推广可以选择哪些方法
  • 网站建设 中企动力南昌0792太原百度网站快速排名
  • 做网站设计的网站关键词搜索技巧
  • 如何在各大网站发布信息百度在线客服
  • 做网站前途东莞seo技术
  • 怎么做乞讨网站优化大师最新版本
  • 做网站需要注意什么互联网营销成功案例
  • 高端大气网站建设网络项目怎么推广
  • 西宁做网站的工作室汕头seo全网营销
  • 中国八冶建设集团网站品牌策划案
  • 如何做条形码网站怎么搞seo搜索引擎优化介绍
  • 大良企业网站建设大学生网页设计作业
  • 网站模板套用本周新闻热点
  • 亚洲做性视频网站惠州市seo广告优化营销工具
  • 济南专门做公司网站的公司国内专业的seo机构
  • 教做网站视频免费网站推广网站不用下载
  • 网站建设主题与建设目标百度代理公司查询
  • 我在日本做动画视频网站电脑培训网上免费课程