矩陣、矩陣轉置、矩陣相乘

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);  //- - - - - - - - - 產生的矩陣結果
    //本例:產生的矩陣為:
初始矩陣.png
    //矩陣轉置
    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);  //轉置結果
    //矩陣的轉置結果為:
矩陣轉置.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列
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容