• 两个矩阵相加
2021-03-08 16:45:04

import java.util.Scanner;

public class Main {

//N o w J a v a . c o m - 时代Java 提 供

public static int[][] mMatrixSum(int mArrayA[][], int mArrayB[][]) {

int i, j;

int mRows = mArrayA.length;

int mColumn = mArrayA[0].length;

int[][] mSumArray = new int[mRows][mColumn];

for (i = 0; i < mRows; i++) {

for (j = 0; j < mColumn; j++) {

mSumArray[i][j] = mArrayA[i][j] + mArrayB[i][j];

}

}

return mSumArray;

}

/** 时 代 Java - nowjava.com 提供 **/

public static void main(String args[]) throws Exception {

int r, c;

int i, j;

int mRow = 4;

int mColumn = 3;

int[][] mArrayA = new int[mRow][mColumn];

for (r = 0; r < mArrayA.length; r++) {

for (c = 0; c < mArrayA[r].length; c++) {

mArrayA[r][c] = c + r;

System.out.print(mArrayA[r][c] + " ");

}

System.out.println(" ");

}

int mRowTwo = 4;

int mColumnTwo = 3;

int[][] mArrayB = new int[mRowTwo][mColumnTwo];

for (r = 0; r < mArrayB.length; r++) {

for (c = 0; c < mArrayB[r].length; c++) {

mArrayB[r][c] = r*c;

System.out.print(mArrayB[r][c] + " ");

}

System.out.println(" ");

}

int sum[][] = mMatrixSum(mArrayA, mArrayB);

/**代码未完, 请加载全部代码(NowJava.com).**/

更多相关内容
• 方法头如下： public static double[][] addMatrix(double[][] a, double[][]...public class _016_矩阵相加 { public static void main(String[] args) { double[][] matrix1= new double[4][4]; double[][] matr

方法头如下：

public static double[][] addMatrix(double[][] a, double[][] b)

以下是Java的源代码实现

import java.util.Scanner;

public class _016_矩阵相加 {
public static void main(String[] args) {
double[][] matrix1= new double[4][4];
double[][] matrix2= new double[4][4];
System.out.print("Enter matrix1:");
setMartix(matrix1);
System.out.print("Enter matrix2:");
setMartix(matrix2);

}

public static double[][] addMartix(double[][] a, double[][] b){
double[][] Totalmatrix= new double[4][4];
for(int i =0; i <a.length-1;i++){
for(int j =0; j < a[0].length-1;j++){
Totalmatrix[i][j] = a[i][j]+b[i][j];
}
}
}

public static void setMartix(double[][] martix){
Scanner input = new Scanner(System.in);
for(int i =0; i < martix.length-1; i++){
for(int j =0; j< martix[0].length-1; j++){
martix[i][j] = input.nextDouble();
}
}
}

public static void showMartic(double[][] a){
for (int i =0; i< a.length-1; i++){
for(int j =0; j < a[0].length-1;j++){
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}

下面是对上面问题的分析：

矩阵相加其实就是数组对应位置相加

而矩阵的相乘是将一个矩阵的行元素与另一个矩阵列元素相乘作为一个元素

数组问题的变化十分多。例如旋转矩阵对角线路线问题，无论它如何变都希望你能够画图，将点给绘制出来，用宏观的方法去进行整体的框架架构。之后再考虑细节

上面的代码其实需要你先去理解每一个块都做了哪些东西，然后才是尝试写代码。

展开全文
• 编写两个矩阵相加的方法：public static double[][] addMatrix(double[][] a, double[][] b) 编写一个测试程序，提示用户输入两个3 *3的矩阵，然后显示它们的和。 测试数据： Enter matrix1: 1 2 3 4 5 6 7 8 9 ...

编写两个矩阵相加的方法：
public static double[][] addMatrix(double[][] a, double[][] b)
编写一个测试程序，提示用户输入两个3 * 3的矩阵，然后显示它们的和。

测试数据：

Enter matrix1: 1 2 3 4 5 6 7 8 9
Enter matrix2: 0 2 4 1 4.5 2.2 1.1 4.3 5.2

package pack2;

import java.util.Scanner;

public class TwoMatrixSum {

public static void main(String[] args) {
try(Scanner input = new Scanner(System.in);) {
double[][] a = new double[3][3];
double[][] b = new double[3][3];

System.out.print("Enter matrix1: ");
for (int i = 0; i < a.length; i++)
for (int j = 0; j < a.length; j++)
a[i][j] = input.nextDouble();

System.out.print("Enter matrix2: ");
for (int i = 0; i < a.length; i++)
for (int j = 0; j < a.length; j++)
b[i][j] = input.nextDouble();

}
}

/**两个矩阵相加*/
public static double[][] addMatrix(double[][] a, double[][] b) {
double[][] sum = new double[a.length][a.length];

for (int i = 0; i < sum.length; i++)
for (int j = 0; j < sum.length; j++)
sum[i][j] = a[i][j] + b[i][j];

return sum;
}

/**打印矩阵*/
public static void printMatrix(double[][] a, double[][] b, double[][] c, char op) {
for (int i = 0; i < c.length; i++) {
for (int j = 0; j < c.length; j++)
System.out.printf("%5.1f", a[i][j]);

if(i == c.length / 2)
System.out.print("   "+op+" ");
else
System.out.print("     ");

for (int j = 0; j < c.length; j++)
System.out.printf("%5.1f", b[i][j]);

if(i == c.length / 2)
System.out.print("  = ");
else
System.out.print("    ");

for (int j = 0; j < c.length; j++)
System.out.printf("%5.1f", c[i][j]);
System.out.println();
}
}
}


展开全文
• 课程设计要求 设计一个程序实现两个矩阵的基本运算 两个矩阵相加 两个矩阵相减 两个矩阵相乘 求一个矩阵的转置矩阵 底层数据结构使用的是稀疏矩阵，用数组实现 使用C++语言，基于Qt5平台开发
• ## 两个矩阵相加后求逆

万次阅读 多人点赞 2019-11-12 18:02:37
如何计算两个矩阵相加后求逆 Householder公式指出如果A是非奇异矩阵，x，y是向量，他们所有的阶数都是n，如果 是非奇异的，那么

# 如何计算两个矩阵相加后求逆

## 求解矩阵 ( A + B ) (A+B) 的逆

这里用增广阵和矩阵变换求解，假设A,B矩阵都可逆
A + B ∣ E \displaystyle\color{red}A+B|E
左乘 A − 1 A^{-1} :
E + A − 1 B ∣ A − 1 \displaystyle\color{red}E+A^{-1}B|A^{-1}
在左边矩阵里提取出一个B ，得到：
( B − 1 + A − 1 ) B ∣ A − 1 \displaystyle\color{red}(B^{-1}+A^{-1})B|A^{-1}
然后两边左乘 ( B − 1 + A − 1 ) (B^{-1}+A^{-1}) 的逆
B ∣ ( B − 1 + A − 1 ) − 1 A − 1 \displaystyle\color{red}B|(B^{-1}+A^{-1})^{-1}A^{-1}
再左乘B的逆
E ∣ B − 1 ( B − 1 + A − 1 ) − 1 A − 1 \displaystyle\color{red}E|B^{-1}(B^{-1}+A^{-1})^{-1}A^{-1}
这就得到了常见的版本：
( A + B ) − 1 = B − 1 ( B − 1 + A − 1 ) − 1 A − 1 \displaystyle\color{red}(A+B)^{-1}=B^{-1}(B^{-1}+A^{-1})^{-1}A^{-1}
如果改变代入A，B逆的顺序还可以得到其他不同的结果。

## 矩阵 ( A + x y T ) (A+xy^T) 的逆

该公式详见于Broyden的拟牛顿法文章中，Householder公式指出如果A是 n × n n\times n 非奇异矩阵，x，y是 n × 1 n\times1 的向量，如果 A + x y − T A+xy^{-T} 是非奇异的，那么
( A + x y T ) − 1 = A − 1 − A − 1 x y T A − 1 1 + y T A − 1 x \displaystyle\color{red}(A+xy^{T})^{-1}=A^{-1}-\frac{A^{-1}xy^{T}A^{-1}}{1+y^{T}A^{-1}x}
这个是Sherman-Morrison公式，详细证明方式参见其他文章
https://blog.csdn.net/jclian91/article/details/80254568
对其进行验证：
( A + x y − T ) ( A − 1 − A − 1 x y T A − 1 1 + y T A − 1 x ) \displaystyle(A+xy^{-T})(A^{-1}-\frac{A^{-1}xy^{T}A^{-1}}{1+y^{T}A^{-1}x})

= E + x y T A − 1 − x y T A − 1 1 + y T A − 1 x − − x y T A − 1 x y T A − 1 1 + y T A − 1 x \displaystyle=E+xy^{T}A^{-1}-\frac{xy^{T}A^{-1}}{1+y^{T}A^{-1}x}--\frac{x\color{red}y^{T}A^{-1}x\color{black}y^{T}A^{-1}}{1+y^{T}A^{-1}x} (注意， y T A − 1 x y^{T}A^{-1}x 是一个数）

= E + x y T A − 1 − x y T A − 1 + y T A − 1 x x y T A − 1 − y T A − 1 x x y T A − 1 1 + y T A − 1 x \displaystyle=E+\frac{xy^{T}A^{-1}-xy^{T}A^{-1}+\color{red}y^{T}A^{-1}x\color{black}xy^{T}A^{-1}-\color{red}y^{T}A^{-1}x\color{black}xy^{T}A^{-1}}{1+y^{T}A^{-1}x}

= E =E

## 结束语

本文写于偶然学习拟顿法时，见到这两个公式，苦思不得，只能记推导公式于此，望各位看过有所收获

展开全文
• c++使用vector实现两个矩阵相加 直接上代码 #include <vector> vector<vector<double>> matrix_add(vector<vector<double>> m, vector<vector<double>> n) { //矩阵...
• def matrix_add(matrix1,matrix2): total_element = [] new_matrix = [] total_element = [matrix1[i][j] + matrix2[i][j] for i in range(len(matrix1)) for j in range(len(matrix1))] new_matr...
• *8.5（代数：两个矩阵相加）编写两个矩阵相加的方法，编写一个测试程序，提示用户输入两个3*3的矩阵，然后显示它们的和题目题目描述与运行示例破题代码 题目 题目描述与运行示例 8.5（代数：两个矩阵相加）编写两个...
• ## 两个矩阵相加

千次阅读 2019-08-05 14:09:03
#include ...printf("\n二维数组相加结果:\n\n"); for(i=0; i; ++i) for(j=0; j; ++j) { printf("%d", sum[i][j]); if(j==c-1) { printf("\n\n"); } } return 0; }
• 两个 3 行 3 列的矩阵，实现其对应位置的数据相加，并返回一个新矩阵： X = [[12,7,3], [4,5,6], [7,8,9]] Y = [[5,8,1], [6,7,3], [4,5,9]] 代码演示： X = [[12,7,3], [4,5,6], [7,8,9]] Y = [[5,8,...
• C 语言实例使用多维数组将两个矩阵相加。#include int main(){int r, c, a[100][100], b[100][100], sum[100][100], i, j;printf("输入行数 ( 1 ~ 100): ");scanf("%d", &r);printf("输入列数 ( 1 ~ 100): ");...
• torch中将两个矩阵相加Problem statement: 问题陈述： To add two 16 bits numbers in 8085 Microprocessor using 16 bits operation. 使用16位操作在8085微处理器中添加两个16位数字。 Algorithm: 算法： ...
• C 语言实例 - 两个矩阵相加 C 语言实例 C 语言实例 使用多维数组将两个矩阵相加。 实例 #include <stdio.h> int main(){ int r, c, a[100][100], b[100][100], sum[100][100], i, j; printf...
• Java程序对两个矩阵相加我们可以使用二进制+运算符在Java中对两个矩阵进行相加。矩阵也称为数组数组。我们可以加，减和乘矩阵。要减去两个矩阵，请使用-运算符。让我们看一个简单的示例，对两个3行3列的矩阵进行相加...
• C语言数据结构之两个稀疏矩阵相加。代码中代码功能描述、输入输出说明和测试输出输入。
• //C语言两个矩阵相加,使用多维数组将两个矩阵相加。include int main(){int a[100][100], b[100][100], sum[100][100], i, j, c, r;printf("输入行数(0-100):");scanf("%d", &r);printf("输入列数(0-100):");...
• #include "stdafx.h"...//矩阵运算的类 class Matrix { private: int row;//行 int col;//列 int **mat;//指向一级指针变量的二级指针，二级指针变量名可以看做二维数组的数组名 p...
• //矩阵相加代码 int **matAdd(int **mat1,int r1,int c1,int **mat2,int r2,int c2) { int **res; if(c1!=c2 || r1!=r2) return NULL; res=createMat(r1,c1); int i,j,k; for(i=0;i;i++) { ...
• 两个 3 行 3 列的矩阵，实现其对应位置的数据相加，并返回一个新矩阵： X = [[12,7,3], [4 ,5,6], [7 ,8,9]] Y = [[5,8,1], [6,7,3], [4,5,9]] 程序分析：创建一个新的 3 行 3 列的矩阵，使用 for ...
• 在屏幕上输入两个矩阵，然后实现相加，实现数据结构中的压缩，非常简单。
• /* 编写一个程序，用函数重载运算符“+”和“‐”，将两个矩阵（这两个矩阵均为 3 行 3 列） 相加和相减，要求第一个矩阵的值由构造函数设置，另一个矩阵的值由键盘输入。 1. 一个构造函数,矩阵元素从 1 开始递增；...
• 第八章第五题（代数：两个矩阵相加）（Algebra: adding two matrices） 8.5（代数：两个矩阵相加）编写两个矩阵相加的方法。方法头如下： public static double[][] addMatrix(double[][] a,double[][] b) 为了...
• 用C++二维数组做的两个矩阵相加 没有考虑任何条件
• python 矩阵相加 正整数n，代表要输入的是n*n的矩阵，两个矩阵由用户输入，计算输出两个矩阵相加的和。
• 设计一个稀疏矩阵运算器。实现两个矩阵相加、相减和相乘等的运算。矩阵的输入输出均按通常的阵列形式
• System.out.println("两个矩阵相加后的结果:"); showArr(arr); } public static void showArr(double[][] arr) { for(int i=0; i; i++) { for(int j=0; j[i].length; j++) { System.out.print(arr[i...
• ~实现两个矩阵相加，相减或者相乘的运算。 ~稀疏矩阵的输入形式 采用三元组表示，运算结果矩阵 以通常阵列形式列出 CODE: /* 稀疏矩阵运算器，以“带行逻辑链接信息”的三元组 顺序表表示稀疏矩阵， ~实现两个...

...