两个矩阵相乘 : 数组 « 集合数据结构 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 集合数据结构 » 数组屏幕截图 
两个矩阵相乘
 
/**
 * Multiply two matrices.
 * Only defined for int: TODO: rewrite using 1.5 Generics to add 
 * support for long, float, and double.
 @author Ian F. Darwin, http://www.darwinsys.com/
 @version $Id: Matrix.java,v 1.4 2004/03/07 02:53:53 ian Exp $
 */
public class Matrix {

  /* Matrix-multiply two arrays together.
   * The arrays MUST be rectangular.
   * @author Tom Christiansen & Nathan Torkington, Perl Cookbook version.
   */
  public static int[][] multiply(int[][] m1, int[][] m2) {
    int m1rows = m1.length;
    int m1cols = m1[0].length;
    int m2rows = m2.length;
    int m2cols = m2[0].length;
    if (m1cols != m2rows)
      throw new IllegalArgumentException("matrices don't match: " + m1cols + " != " + m2rows);
    int[][] result = new int[m1rows][m2cols];

    // multiply
    for (int i=0; i<m1rows; i++)
      for (int j=0; j<m2cols; j++)
        for (int k=0; k<m1cols; k++)
        result[i][j+= m1[i][k* m2[k][j];

    return result;
  }

  /** Matrix print.
   */
  public static void mprint(int[][] a) {
    int rows = a.length;
    int cols = a[0].length;
    System.out.println("array["+rows+"]["+cols+"] = {");
    for (int i=0; i<rows; i++) {
      System.out.print("{");
      for (int j=0; j<cols; j++)
        System.out.print(" " + a[i][j",");
      System.out.println("},");
    }
    System.out.println(":;");
  }
  public static void main(String[] argv) {
    //+
    int x[][] {
      32},
      59},
    };
    int y[][] {
      4},
      9},
      8},
    };
    int z[][] = Matrix.multiply(x, y);
    Matrix.mprint(x);
    Matrix.mprint(y);
    Matrix.mprint(z);
    //-
  }
}
           
         
  
Related examples in the same category
1. 初始化一个静态数组
2. 初始化和重新分配数组初始化和重新分配数组
3. 规模扩大一倍数组规模扩大一倍数组
4. Timing array loop performance
5. 二维数组二维数组
6. 改变长度数组
7. 查看二维数组的对象
8. 使用一个ArrayList
9. Array Hunt game
10. 多维数组
11. Clone Array
12. Associates keys with valuesAssociates keys with values
13. 原始数据数组
14. 创建新的数组
15. 数组初始化
16. Creating an array of nonprimitive objects
17. 创建多维数组创建多维数组
18. 初始化数组值初始化数组值
19. 创建一个二维数组
20. 初始化二维数组初始化二维数组
21. 使用长度可变使用长度可变
22. 三角数组
23. 增长数组增长数组
24. Define array for class Define array for class
25. 字符串数组并输出到控制台字符串数组并输出到控制台
26. 数组演示2数组演示2
27. 数组复制演示数组复制演示
28. 元素复制到另一个数组
29. 展示多维数组展示多维数组
30. 扩大数组规模
31. 复制一个数组
32. 初始化多维数组
33. 获取数组upperbound
34. To get the number of dimensions
35. 数组System.arraycopy()
36. 自卸数组的内容:转换数组一份清单,然后转换为字符串
37. java.utils.Arrays提供如何转储一个数组。
38. 自卸多维数组
39. Use the new shorthand notation to iterate through an array
40. 创建一个重复序列
41. 扭转数组元素
42. Convert array of primitives into array of objects
43. 数组初始化
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.