标签:矩阵计算
最近学习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();
}
}
本文出自 “流浪的脚步” 博客,谢绝转载!
标签:矩阵计算
原文地址:http://now51jq.blog.51cto.com/3474143/1549839