精华内容
下载资源
问答
  • Matlab矩阵行相加、列相加

    万次阅读 2014-05-09 22:43:54
    Z=[1 2;3 4] b=sum(Z) %将列相加 c=sum(Z,2) %将行相加 运行结果:  Z =  1 2  3 4 b =  4 6 c =  3  7
    Z=[1 2;3 4]
    b=sum(Z)     %将列相加
    c=sum(Z,2)   %将行相加


    运行结果: 
    Z =
         1     2
         3     4
    b =
         4     6
    c =
         3
         7
    展开全文
  • 稀疏矩阵相加

    2012-03-10 11:20:29
    (1)行数、数小于等于零,或非零元素的个数小于等于0,或非零元素的个数超过矩阵的 行数*数; (2)不按次序或行、超出范围。 均显示 “error,please input!” 提醒重新输入。 如果矩阵 M 和 N 不满足矩阵...
  • 矩阵相加

    2015-01-11 15:59:00
    # include "stdio.h" int main(void) ... printf("请输入需要相加矩阵的行数与数:");  scanf("%d %d",&c,&d);  printf("请输入第一个矩阵:\n");  for(i=0;i   for(j=0;j   scanf("%d",
    # include "stdio.h"
    int main(void)
    {
      int a[100][100],b[100][100],i,j,c,d;
      printf("请输入需要相加的矩阵的行数与列数:");
      scanf("%d %d",&c,&d);
      printf("请输入第一个矩阵:\n");
      for(i=0;i
        for(j=0;j
           scanf("%d",&a[i][j]);
      printf("请输入第二个矩阵:\n");
      for(i=0;i
        for(j=0;j
           scanf("%d",&b[i][j]);
      for(i=0;i
        for(j=0;j
          a[i][j]+=b[i][j];
      printf("相加后的矩阵为:\n");
      for(i=0;i
      {
        for(j=0;j
          printf("%-3d",a[i][j]);
        printf("\n");
      }
    }
     
    展开全文
  • 矩阵相加

    千次阅读 2019-11-13 22:26:40
    矩阵相加的前提是相加的两个矩阵行数与数必须相等,而相加后的行数与数也相同。形式如:Amn+Bmn=Cmn。 代码实现: public static void matrix_add(int[][] arrA,int[][] arrB,int[][] arrC,int dimX,int dimY)...
    • 矩阵相加的前提是相加的两个矩阵行数与列数必须相等,而相加后的行数与列数也相同。形式如:Amn+Bmn=Cmn。

    代码实现:

     public static void matrix_add(int[][] arrA,int[][] arrB,int[][] arrC,int dimX,int dimY){
            int row,col;
            if(dimX<0 || dimY<0){
                System.out.println("矩阵维数必须大于0!");
            }
            for(row=1;row<=dimX;row++){
                for(col=1;col<=dimY;col++){
                    arrC[(row-1)][(col-1)] = arrA[(row-1)][(col-1)]+arrB[(row-1)][(col-1)];
                }
            }
        }
    

    测试类:

     public static void main(String[] args) {
            int i;
            int j;
            final int ROWS = 3;
            final int COLS = 3;
            int[][] A = {{1, 3, 5},{7,9,11},{13,15,17}};
            int[][] B = {{9,8,7},{6,5,4},{3,2,1}};
            int[][] C = new int[ROWS][COLS];
            System.out.println("[矩阵A的各个元素]");
            for(i=0;i<3;i++){
                for(j=0;j<3;j++){
                    System.out.print(A[i][j]+"\t");
                }
                System.out.println();
            }
    
            System.out.println("[矩阵B中的各个元素]");
            for(i=0;i<3;i++) {
                for (j = 0; j < 3; j++) {
                    System.out.print(B[i][j] + "\t");
    
                }
                System.out.println();
            }
            matrix_add(A,B,C,3,3);
            System.out.println("[显示矩阵A和矩阵B相加的结果]");
            for(i=0;i<3;i++){
                for(j=0;j<3;j++){
                    System.out.print(C[i][j]+"\t");
                }
                System.out.println();
            }
        }
    

    运行结果:
    在这里插入图片描述

    展开全文
  • 矩阵相加运算比较简单,前提是相加的两个矩阵行数与数必须相等。代码如下: import java.io.*; public class CH02_02 { public static void MatriAdd(int arrA[][], int arrB[][], int arrC[][], int dimX, ...

    ——————————————————————————————————————————————————

    1、矩阵的相加

    矩阵的相加运算比较简单,前提是相加的两个矩阵行数与列数必须相等。代码如下:

    import java.io.*;
    
    public class CH02_02 {
    
        public static void MatriAdd(int arrA[][], int arrB[][], int arrC[][], int dimX, int dimY)
        {
                int row, col;
                if(dimX <= 0 || dimY <= 0)
                {
                    System.out.println("矩阵维数必须大于0");
                    return;
                 }
                for(row = 1; row <= dimX; row++)
                {
                    for(col = 1; col <= dimY; col++)
                    {
                        arrC[(row-1)][(col-1)] = arrA[(row-1)][(col-1)] + arrB[(row-1)][(col-1)];
                    }
                }
        }
        
        public static void main(String[] args) throws IOException{
            int i, j;
            final int ROWS = 3;
            final int COLS = 3;
            int [][] A = {{1,3,5},{7,9,11},{13,15,17}};
            int [][] B = {{9,8,7},{6,5,4},{3,2,1}};
            int [][] C = new int[ROWS][COLS];
            
            System.out.println("[矩阵A的各个元素]");
            for(i = 0; i < 3; i++)
            {
                for(j = 0; j < 3; j++)
                    System.out.print(A[i][j] + " \t");
                System.out.println();
            }
            
            
            System.out.println("[矩阵B的各个元素]");
             for(i = 0; i < 3; i++)
            {
                for(j = 0; j < 3; j++)
                    System.out.print(B[i][j] + " \t");
                System.out.println();
            }
             
             MatriAdd(A, B, C, 3, 3);
             
             
             System.out.println("[显示矩阵A和矩阵B相加的结果]");
             
             for(i = 0; i < 3; i++)
             {
                 for(j = 0; j < 3; j++)
                     System.out.print(C[i][j] + " \t");
                 System.out.println();
             }
         
        }
    
    }
    
    

    2、矩阵相乘

    例如:两个矩阵A与B的相乘,是有某些限制条件的。首先必须符合A为一个mn的矩阵,B为一个np的矩阵,对AB之后的结果为一个mp的矩阵C。代码如下:

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package ch02_03;
    import java.io.*;
    /**
     *
     * @author 604
     */
    public class CH02_03 {
    
        public static void main(String[] args) throws IOException{
            // TODO code application logic here
            int M, N, P;
            int i, j;
           
            String strM, strN, strP, tempstr;
            BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("请输入矩阵A的维数(M,N): ");
            System.out.println("请先输入矩阵A的M值");
            strM = keyin.readLine();
            M = Integer.parseInt(strM);
            System.out.println("请输入矩阵A的N值");
            strN = keyin.readLine();
            N = Integer.parseInt(strN);
            int A[][] = new int [M][N];
            System.out.println("[请输入矩阵A的各个元素]");
            System.out.println("注意! 每输入一个值按下Enter键确认输入");
            for(i = 0; i < M; i++)
            {
                for(j = 0; j < N; j++)
                {
                    System.out.println("a"+i+j+"=");
                    tempstr = keyin.readLine();
                    A[i][j] = Integer.parseInt(tempstr);
                }
            }
            
            System.out.println("请输入矩阵B的维数(N,P): ");
            System.out.println("请先输入矩阵B的N值");
            strN = keyin.readLine();
            N = Integer.parseInt(strN);
            System.out.println("请输入矩阵B的P值");
            strP = keyin.readLine();
            P = Integer.parseInt(strP);
            int B[][] = new int [N][P];
            System.out.println("[请输入矩阵B的各个元素]");
            System.out.println("注意! 每输入一个值按下Enter键确认输入");
            for(i = 0; i < N; i++)
            {
                for(j = 0; j < P; j++)
                {
                    System.out.println("B"+i+j+"=");
                    tempstr = keyin.readLine();
                    B[i][j] = Integer.parseInt(tempstr);
                }
            }
            
            int C[][] = new int [M][P];
            MatrixMultiply(A, B, C, M, N, P);
            
            System.out.println("[A*B的结果是]");
            for(i = 0; i < M; i++)
            {
                for(j = 0; j < P; j++)
                {
                    System.out.print(C[i][j]);
                    System.out.print('\t');
                }
                System.out.println();
            }
            
        }
        
        public static void MatrixMultiply(int arrA[][], int arrB[][], int arrC[][], int M, int N, int P)
        {
            int i, j, k, Temp;
            if(M <= 0 || N <= 0 || P <= 0)
            {
                System.out.println("[错误:维数M,N,P必须大于0]");
                return;
            }
            for(i = 0; i < M; i++)
            {
                for(j = 0; j < P; j++)
                {
                    Temp = 0;
                    for(k = 0; k < N; k++)
                        Temp = Temp + arrA[i][k] * arrB[k][j];
                    arrC[i][j] = Temp;
                }
            }
        }
        
    }
    
    

    3、转置矩阵

    假设A为mn矩阵,则A的转置矩阵为nm。代码如下:

    import java.io.*;
    
    public class CH02_04 {
    
        public static void main(String[] args) throws IOException{
            // TODO code application logic here
            int M, N, row, col;
            String strM;
            String strN;
            String tempstr;
           BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in));
            
            System.out.println("[输入M*N矩阵的维度]");
            System.out.println("请输入维度M:");
            strM = keyin.readLine();
            M = Integer.parseInt(strM);
            System.out.println("请输入维度N: ");
            strN = keyin.readLine();
            N = Integer.parseInt(strN);
            
            int arrA[][] = new int [M][N];
            int arrB[][] = new int [N][M];
            System.out.println("[请输入矩阵的内容]");
            for(row = 1; row <= M; row++)
            {
                for(col = 1; col <= N; col++)
                {
                    System.out.println("a" + row + col + "=");
                    tempstr = keyin.readLine();
                    arrA[row-1][col-1] = Integer.parseInt(tempstr);
                }
                
            }
            
            System.out.println("[输入矩阵内容为]\n");
            for(row = 1; row <= M; row++)
            {
                for(col = 1; col <= N; col++)
                {
                    System.out.print(arrA[(row-1)][(col-1)]);
                    System.out.print('\t');
                }
                System.out.println();
            }
            
            for(row = 1; row <= N; row++)
            {
                for(col = 1; col <= M; col++)
                {
                    arrB[(row-1)][col-1] = arrA[(col-1)][(row-1)];
                }
               
            }
             System.out.println("[转置矩阵的内容为]");
            for(row = 1; row <= N; row++)
            {
                for(col = 1; col <= M; col++)
                {
                    System.out.print(arrB[(row-1)][col-1]);
                    System.out.print('\t');
                }
                System.out.println();
            }     
        }
        
    }
    
    

    4、稀疏矩阵

    对于稀疏矩阵,如果直接用传统的二维数组来存储也可以,但事实上有许多元素都是0。这样的做法对于矩阵很大的稀疏矩阵,就会浪费内存空间。而改进空间浪费的方法就是利用三项式的数据结构,代码如下:

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package ch02_05;
    
    import java.io.*;
    
    public class CH02_05 {
    
        public static void main(String[] args) throws IOException{
            // TODO code application logic here
            final int _ROWS = 8;//定义行数
            final int _COLS = 9;//定义列数
            final int _NOTZERO = 8;//定义稀疏矩阵中不为0的个数
            int i, j, tmpRW, tmpCL, tmpNZ;
            int temp = 1;
            int Sparse[][] = new int [_ROWS][_COLS];//声明稀疏矩阵
            int Compress[][] = new int [_NOTZERO+1][3];//声明压缩矩阵
            for(i = 0; i < _ROWS; i++)
            {
                for(j = 0; j < _COLS; j++)
                {
                    Sparse[i][j] = 0;
                }
            }
            tmpNZ = _NOTZERO;
            for(i = 1; i < tmpNZ+1; i++)
            {
                tmpRW = (int)(Math.random()*100);
                tmpRW = (tmpRW % _ROWS);
                tmpCL = (int)(Math.random()*100);
                tmpCL = (tmpCL % _COLS);
                if(Sparse[tmpRW][tmpCL] != 0)
                {
                    //避免同一个元素设定两次数值而造成压缩矩阵中有0
                    tmpNZ++;
                }
                Sparse[tmpRW][tmpCL] = i;//随机产生稀疏矩阵中非零的元素值
            }
            System.out.println("[稀疏矩阵的各个元素]");
            for(i = 0; i < _ROWS; i++)
            {
                for(j = 0; j < _COLS; j++)
                {
                    System.out.print(Sparse[i][j] + " ");
                }
                System.out.println();
            }
            //开始压缩稀疏矩阵
            Compress[0][0] = _ROWS;
            Compress[0][1] = _COLS;
            Compress[0][2] = _NOTZERO;
            for(i = 0; i < _ROWS; i++)
            {
                for(j = 0; j < _COLS; j++)
                {
                    if(Sparse[i][j] != 0)
                    {
                        Compress[temp][0] = i;
                        Compress[temp][1] = j;
                        Compress[temp][2] = Sparse[i][j];
                        temp++;
                    }
                }
            }
            System.out.println("[稀疏矩阵压缩后的内容]");
            for(i = 0; i < _NOTZERO+1; i++)
            {
                for(j = 0; j < 3; j++)
                    System.out.print(Compress[i][j] + " ");
                System.out.println();
            }
        }
        
    }
    
    
    展开全文
  • 设有两个4*4的稀疏矩阵A和B,相加得到C,如图所示,请编写算法,要求利用三元组表示法实现两个稀疏矩阵相加,并用矩阵形式输出结果。     【分析】 先比较两个稀疏矩阵的 先比较两个稀疏矩阵A和B的...
  • #include<stdio.h> #define MAXSIZE 1000 typedef struct node { int row,col,value; //行、、值 ... //矩阵总行数、数、非零元素个数 }TSMatrix; void Input(TSMatrix *tm); //矩阵输入
  • python矩阵相加

    千次阅读 2019-03-06 20:09:00
    # 两个 3 行 3 矩阵,实现其对应位置的数据相加,并返回一个新矩阵: # 使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。 import numpy as np a = np.random.randint(1,100,...
  • 问题描述及代码: #ifndef TUP_H_INCLUDED #define TUP_H_INCLUDED ...*问题描述:提示1:两个行数、数相同的矩阵可以相加 提示2:充分利用已经建立好的算法库解决问题 */ #endif // TUP_H_INCLUDED
  • 数据结构实践——稀疏矩阵相加

    万次阅读 多人点赞 2015-10-07 21:06:53
    提示1:两个行数、数相同的矩阵可以相加 提示2:充分利用已经建立好的算法库解决问题[参考解答1](程序中使用的头文件”tup.h”见稀疏矩阵的三元组表示算法库) #include #include "tup.h" boo
  • #include <iostream> #include <stdio.h> #include<stdlib.h> using namespace std; typedef struct Triple{ ... //行号,号 int num;//数值 }Triple; typedef struct TS{ ...
  • 矩阵的实现(矩阵相加

    千次阅读 2017-05-15 17:37:00
    #include using namespace std;... //矩阵行数数 int **element; //动态二维数组 void InitiaMatrix(int rows,int columns); //申请并初始化指定行数数的空矩阵 public: Matrix(int rows=4
  • C++ 矩阵相加(运算符重载)

    千次阅读 2020-05-31 13:52:44
    已知一个矩阵包含行数m、数n、数值data三个属性,包含初始化、输出、相加等操作,要求 1、在类定义中,矩阵的data属性是一个整数指针型指针。只有创建对象时,根据外来输入的行数和数,才把指针变成一个二维数组...
  • arrayAddition,计算两个数组的和(两个数组的行数和数必须相等); arraySubtion计算两个数组的差(两个数组的行数和数必须相等); arrayMul计算两个数组的乘积(第二个数组的行数必须与第一个数组的数...
  • 今天整了下稀疏矩阵相加,不是很难; 题目: 话不多说,代码如下: #include<stdio.h> #include<stdlib.h> #define MAXSIZE 1000 typedef struct{ int row;//第几行 int col;//第几 int e;//存储的...
  • 运算规则为:一个n行m矩阵A加上另一个n行m矩阵,得到的结果是一个n行m矩阵C,C中的第i行第j位置上的数等于A和B矩阵第i行第j上数相加的和。例如:  请编程序,实现两个矩阵的加法。 /*烟台大学...
  • 问题代码:/*问题及代码 ... *All right reserved. *文件名称:1.cpp *作者:李玲 *完成日期;2016年10月28日 ...提示1:两个行数、数相同的矩阵可以相加 提示2:充分利用已经建立好的算法库解
  • 数据结构——稀疏矩阵相加

    千次阅读 2019-11-06 19:36:18
    数据结构——稀疏矩阵三元组形式相加 一.稀疏矩阵的在C语言上的定义描述 typedef struct { int i,j;//该非零元的行列下标 ElemType e; }Triple; typedef struct { Triple data[MAXSIZE+1];//非零元三元组...
  • 两个矩阵相加

    千次阅读 2019-08-05 14:09:03
    #include <stdio.h> int main() { int r, c, a[100][100], b[100][100], sum[100][100], i, j; printf("输入行数 ( 1 ~ 100 ): ");...printf("输入数 ( 1 ~ 100 ): "); scanf("%d",&c); prin...
  • 运算规则为:一个n行m矩阵A加上另一个n行m矩阵,得到的结果是一个n行m矩阵C,C中的第i行第j位置上的数等于A和B矩阵第i行第j上数相加的和。  请编程序,实现两个矩阵的加法。 作者:景怡乐 完成时间...
  • A.sum(axis=0)是计算矩阵每一元素相加之和。 A.Sum(axis=1)是计算矩阵的每一行元素相加之和。 以上这篇对python中矩阵相加函数sum()的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家...
  • python中矩阵相加函数sum()

    万次阅读 2017-03-03 22:21:59
    假如矩阵A是n*n的矩阵A.sum()是计算矩阵A的每一个元素之和。A.sum(axis=0)是计算矩阵每一元素相加之和。A.Sum(axis=1)是计算矩阵的每一行元素相加之和。...
  • *All right reserved. *文件名称:稀疏矩阵相加 .cpp *作者:宋雨静 *完成日期;2016年10月27日 *版本号;... *问题描述: 采用三元组存储...提示1:两个行数、数相同的矩阵可以相加 提示2:充分利用已
  • /*问题及代码 ... *All right reserved. *文件名称:稀疏矩阵相加 .cpp *作者:李浩 *完成日期;... *问题描述: 采用三元组存储稀疏矩阵,...提示1:两个行数、数相同的矩阵可以相加 提示2:充分利
  • C++基础编程题(40)“有两个矩阵a和b,均为2行3。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加 #include using namespace std; class juzhen { public: juzhen(); juzhen(int a[2][3]); void input_...
  • 矩阵相加(十字链表)

    千次阅读 2016-03-25 13:29:43
    第一行输入四个正整数,分别是两个矩阵的行m、n、第一个矩阵的非零元素的个数t1和第二个矩阵的非零元素的个数t2,接下来的t1+t2行是三元组,分别是第一个矩阵的数据和第二个矩阵的数据, 三元组的第一个元素表示行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 916
精华内容 366
关键字:

矩阵列相加