function createArr2(firstValue,rows,colunms) { //初始值拨匆,行姆涩,列
//生成初始值為firstValue,rows行惭每,colunms列的矩陣
var arr1 = [],count = firstValue;
for(var i=0;i<rows;i++){ //一維長度為3
arr1[i] = [];
for(var j=0;j<colunms;j++){ //二維長度為5
arr1[i][j] = count;
count++
}
};
console.log(arr1); //- - - - - - - - - 產(chǎn)生的矩陣結果
//本例:產(chǎn)生的矩陣為:
初始矩陣.png
//矩陣轉(zhuǎn)置
var arr2=[];
for(var i=0;i<arr1[0].length;i++){
arr2[i]=[];
}
for(var i=0;i<arr1.length;i++){
for(var j=0;j<arr1[i].length;j++){
arr2[j][i]=arr1[i][j];
}
}
console.log(arr2); //轉(zhuǎn)置結果
//矩陣的轉(zhuǎn)置結果為:
矩陣轉(zhuǎn)置.png
//矩陣相乘骨饿,條件是rows1 * column column * rows2 結果==> rows1 * rows2
if(arr1[0].length !== arr2.length) return ;
//用來存放結果的矩陣,axb的結果為a的行數(shù)和b的列數(shù)
var result = [];
//對a的每行進行遍歷
for(var i=0; i<arr1.length; i++) {
result[i] = [];
//對b的每列進行遍歷
for(var j=0;j<arr2[0].length; j++) {
//c為每一個點的值
var c = 0;
//第i行j列的值為a的第i行上的n個數(shù)和b的第j列上的n個數(shù)對應相乘之和台腥,其中n為a的列數(shù)宏赘,也是b的行數(shù),a的列數(shù)和b的行數(shù)相等
for(var k=0; k<arr1[0].length; k++) {
c += (arr1[i][k]*arr2[k][j]);
}
result[i][j] = c;
}
}
console.log(result); //相乘結果
矩陣相乘.png
}
console.log(createArr2(3,4,2)); //初始值3黎侈、4行察署、2列