二维数据练习--矩阵的加法和乘法

数组的练习示例展示:

package arrayList;
/**
 * 矩阵的集中运算法则:求和,求积,求逆矩阵,转置矩阵......
 * @author Drew
 *
 */
public class Arrays {
    /**
     * 两个二维数组(矩阵)求和。
     * @param a 矩阵(二维数组)
     * @param b 矩阵(二维数组)
     * @return  返回一个矩阵(二维数组)
     */
    public static int[][] add(int [][] a,int [][] b) {
        int [][] c = new int[a.length][b.length];
        for(int i = 0; i<c.length; i++) {
            for(int j = 0; j < c.length; j++) {
                c[i][j] = a[i][j] + b[i][j];
            }
        }
        return c;
    }
    /**
     * 直接打印出每个矩阵的值
     * @param arr
     */
    public static void print(int [][] arr) {
        for(int i = 0; i < arr.length; i++) {
            for(int j = 0; j < arr.length; j++) {
                    System.out.print(arr[i][j] + " ");//输出每一个数组中的值
            }
            System.out.println();//将数组按行输出。
        }
    }

    /**
     * 矩阵的乘法
     * @param a  矩阵(二维数组)
     * @param b  矩阵(二维数组)
     * @return  返回一个矩阵(二维数组)
     */
    public static int[][] multiplication(int [][] a,int [][] b) {//矩阵的乘法运算法则有问题。见Matrix.java的具体案例。
        int[][] c = new int[a.length][b.length];
        for(int i = 0; i<c.length; i++) {
            for(int j = 0; j < c.length; j++) {
                c[i][j] = a[i][j]*b[i][j];
            }
        }
        return c;
    }

    /**
     * 主函数方法,用于测试矩阵的运算法则。
     * @param args
     */
    public static void main(String[] args) {
        int [][] a = {{1,2},
                     {3,4}};
        int [][] b = {{10,20},
                      {30,40}};
        System.out.println("--------矩阵a");
        print(a);
        System.out.println("--------矩阵b");
        print(b);
        System.out.println("============数组的基本运算法则:==============");
        System.out.println("--------矩阵加法----------");
        int [][] c = add(a, b);
        print(c);
        System.out.println("--------矩阵乘法----------");
        int [][] d = multiplication(a, b);
        print(d);

        /*int [][] c = new int[2][2];//二阶矩阵(Matrix)
        for(int i = 0; i<c.length; i++) {
            for(int j = 0; j < c.length; j++) {
                c[i][j] = a[i][j] + b[i][j];
                System.out.print(c[i][j] + " ");
            }
        }*/

        //多维数组很少见
        /*int [][][][] b = new int [1][2][2][1];
        b[0][0][0][0] = 34;
        b[0][0][1][0] = 45;
        for(int i = 0; i<b.length; i++) {
            for(int j = 0; j < b.length; j++) {
                for(int c = 0; c < b.length; c++) {
                    for(int f = 0; f < b.length; f++) {
                        System.out.println(b[i][j][c][f] + " ");
                    }
                }
            }
        }*/
    }

}

结果展示:

这是一个小小的二维数组实例展示!你可以自己尝试着去完成矩阵的转置和求逆矩阵。

时间: 2024-10-09 03:27:22

二维数据练习--矩阵的加法和乘法的相关文章

二维数据名作形参

之前帮同学调一个程序的时候遇到的,把二维数据改为全局变量,不通过参数传递就没问题了,否则程序崩溃. 细究一下,二维数据名用于形参时需要注意哪些方面. 测试程序如下: #include<stdio.h> #include<stdlib.h> void print1(int **a, int m, int n); void print2(int (*a)[2], int m, int n); int main() { int a[2][2]={1,2,3,4}; print1((int

对二维数据进行边界拓展

对二维数据处理的时候,经常遇到需要越界的问题,比如对图像进行滤波操作.对原始数据的边界进行拓展,然后使用拓展后的数据作处理,可以解决越界的问题.根据拓展出的数据的值来自哪里可以分为多种边界拓展方式,我们要实现的是将边界进行奇对称拓展. 算法 举例说明什么是奇拓展.比如对原始二维数据向左拓展4列,那么在边界上向左第一列复制边界上向右第一列,在边界上向左第二列复制边界上向右第二列,以此类推.边界列并没有被复制,因为C语言中是从0开始计数的,所以边界列是0列,按照0列对称拓展就称为奇对称拓展.如果0列

【Excle数据透视】二维数据如何创建数据透视表

二维数据在创建数据透视表的时候,可能会给你带来一些麻烦,没法创建,会丢失维度,那怎么办呢? 解决办法:使用数据透视表和数据透视图向导即可创建 步骤1 按下[Alt+D+P],出现如下界面 选择上图中的"多重合并计算数据区域"→下一步 创建单页字段→下一步 选定区域A:A15→添加→下一步 单击完成 数据透视表已经创建完成.二维数据透视表与一维数据透视表在于"行合计" 注意:我上图的数据透视是使用默认计数,所以全部都是1,这个可以根据自己的需求进行调整.

PHP二维数据排序,二维数据模糊查询

一.因为项目中的一个报表需要合并三个表的数据,所以分表查询再合并数据,利用PHP数组函数进行排序,搜索.三表合并后的数组结构如下: Array ( [0] => Array ( [history_id] => 12 [sla_group_id] => 1 [sla_id] => -1 [create_time] => 1513057695 [tasklog_id] => 12 [tasklog_time] => 2017-12-12 13:48:15 [taskl

TensorflowTutorial_二维数据构造简单CNN

使用二维数据构造简单卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 图像和一些时序数据集都可以用二维数据的形式表现,我们此次使用随机分布的二位数据构造一个简单的CNN-网络卷积-最大池化-全连接 参考代码 # Implementing Different Layers # --------------------------------------- # # We will illustrate how to use different types # of layers

一维数据和二维数据

此文章为本人学习所得,如有不足之处,欢迎指正,分享原创,一起进步 维度:数据的组织形式 一维数据 由对等关系的有序或无序数据构成,采用线性方式(一条直线排开)组织 对等关系:这些数据平级关系(不是包含.从属关系) 一维数据的表示----- 如果数据间有序:使用列表类型.如:一维列表ls = [3.1 , 3.02 , 4.15]如果数据间无序:使用集合类型,如:一维集合st ={ 4.15 , 3.02 , 3.1} 切记:for循环可以遍历数据,进而对每个数据进行处理 一维数据的存储-----

python第七周,二维数据的格式化和处理

二维数据的表示: 类表类型可以表示二维数据 [   [424,23423,2342],[131,535,3646]  ] 使用两层for循环可以便利每个元素 外层列表中每个元素可以对应一行,也可以对应一列 一维数据分为列表和集合类型,二维数据只有列表类型 CSV数据存储格式 国际通用的一二维数据存储格式,一般.csv扩展名,每行一个一维数据,采用逗号分隔,无空行 Excel软件可读入输出,一般编辑软件都可以产生,如果某个元素缺失,逗号仍要保留, 二维数据的表头可以作为数据存储,也可以另行存储,

C代码和python代码:用二维数组实现矩阵的转置

目录 一.总结 二.C代码 三.Python代码 一.总结 输入用了 int(input()) ,但发现这种方法好像有点不方便 每次输入一个数字都要按回车,按空格不能识别 下次找找看看有没有其他输入方法 Python中没有数组,但列表类似数组 通过叠加[ ],就可以通过列表创建二维数组 Python中创建二维数组的方法(以本案例为例): matrixA=[[0 for i in range(4)] for i in range(3)] matrixA=[ [ 0, 0, 0, 0], [ 0,

《两个二维数组(矩阵)相乘》

1 //两个二维数组相乘 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define M 2 5 #define N 3 6 //#define P 6 7 void main() 8 { 9 int i,j,k; 10 //二维数组A和B求乘积,积放在数组C中 11 int A[M][N],B[N][M],C[M][M]; 12 //输入二维数组A的元素的值 13 printf("请输入矩阵A的元素:"); 14 fo