关于矩阵计算的java 代码实现----笔记

最近学习hadoop, 很多算法需要利用到矩阵计算,,例如: 协同过滤,pagerank 等等

所以练习一下,

	public  static void m1() {
		// 根据矩阵乘法的规则,a[4 *3]  * b[3,2],
		// 将会得到一个r [4 *2] 的新矩阵  
		//  r[i][j] = a[i][0] * b[0][j] + 
		//            a[i][1] * b[1][j] +
		//            a[i][2] * b[2][j]

		int[][] a = new int[][] { 
				{ 1, 2, 3 }, 
				{ 4, 5, 6 }, 
				{ 7, 8, 9 },
				{ 1, 2, 3} };

		int [][] b = new int[][]{
				{1,2},
				{3,4},
				{5,6} } ;

		int [][] r = new int[4][2];

		int tmp =0;

		// 结果集的列数, 多少列,就代表需要遍历a 矩阵多少次
		for ( int k =0; k < r[0].length; k++) {
			// 双重循环,遍历 a 矩阵
			for (int i = 0; i< a.length; i++ ) {
				tmp = 0;
				// 每一行的结果,对应结果集中的一个元素
				for (int j = 0; j < a[0].length; j++) {
					tmp += a[i][j] * b[j][k] ;

				}
				r[i][k]=tmp;
			}
		}

		for (int i = 0; i < r.length; i++) {
			for (int j = 0; j < r[0].length; j++) {
				System.out.print(r[i][j] + "\t");
			}
			System.out.println();

		}
	}
	
时间: 2024-08-08 17:54:23

关于矩阵计算的java 代码实现----笔记的相关文章

JAVA代码规范笔记(下)

声明 17.推荐一行一个声明,因为这样有利于写注释.换句话说,下面的声明方法中, int level; // indentation level int size; // size of table 要优于: int level, size; 绝对不要将变量和方法的声明放在同一行,例如: long dbaddr, getDbaddr(); // WRONG! 不要将不同类型的变量的声明放在同一行,例如: int foo, fooarray[]; //WRONG! 注意:上面的例子中,变量与标识符

六、Android学习笔记_JNI_c调用java代码

1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // C调用java空方法 public void helloFromJava() { System.out.println("hello from java"); } // C调用java中的带两个int参数的方法 public int Add(int x, int y) { int res

[原创]java WEB学习笔记6:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Android学习笔记_JNI_c调用java代码

1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // C调用java空方法 public void helloFromJava() { System.out.println("hello from java"); } // C调用java中的带两个int参数的方法 public int Add(int x, int y) { int res

1.JAVA中使用JNI调用C++代码学习笔记

Java 之JNI编程1.什么是JNI? JNI:(Java Natibe Inetrface)缩写. 2.为什么要学习JNI?  Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 (这些代码通常是由C/C++编写的). Sun公司提供的JNI是Java平台的一个功能强大的接口.这个JNI接口提供了Java与操作系统本地代码互相调用的功能.(即java调用C++代码) 最简单的Java调用C/C++代码步骤 1.创建TestNativeCode工程,新建cn.itcast包,新建

java入门学习笔记之1(类的定义,代码的编译执行)

这篇文章讲解Java代码的基本执行过程 我们先抛开各种JAVA IDE,开发工具,只使用文本编辑器,以突出最本质的东西. 在Linux环境下,我们编辑一个文件: vim HelloWorld.java 编辑如下代码: 1 public class HelloWorld{ 2 String name; 3 public HelloWorld(String name){ 4 this.name = name; 5 } 6 public void pHelloWorld(){ 7 System.out

JVM学习笔记(二)------Java代码编译和执行的整个过程【转】

转自:http://blog.csdn.net/cutesource/article/details/5904542 版权声明:本文为博主原创文章,未经博主允许不得转载. Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入到符号表 注解处理 语

Spring学习笔记1——IOC: 尽量使用注解以及java代码(转)

在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IOC,mybatis,SpringMVC的基础知识,表单数据验证,文件上传等) 2.服务器异步发送邮件给注册用户.(学习消息队列) 3.用户登录.(学习缓存.Spring Security) 4.其他. 边学习边总结,不定时更新.项目环境为Intellij + Spring4. 一.准备工作. 1.m

Spring学习笔记1——IOC: 尽量使用注解以及java代码

在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IOC,mybatis,SpringMVC的基础知识,表单数据验证,文件上传等) 2.服务器异步发送邮件给注册用户.(学习消息队列) 3.用户登录.(学习缓存.Spring Security) 4.其他. 边学习边总结,不定时更新.项目环境为Intellij + Spring4. 一.准备工作. 1.m