一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現的矩陣乘法示例

Java實現的矩陣乘法示例

2019-06-23 11:47水中魚之1999 Java教程

這篇文章主要介紹了Java實現的矩陣乘法,簡單描述了矩陣乘法的原理,并結合實例形式分析了java實現矩陣乘法的相關操作技巧,需要的朋友可以參考下

本文實例講述了Java實現的矩陣乘法。分享給大家供大家參考,具體如下:

思路:

矩陣乘法的前提是:前一矩陣的行數 == 后一矩陣的列數(rows == cols)

在滿足前提的情況下:前一矩陣的第一行 與 第二個矩陣的第一列 逐個相乘。將乘積求和 作為 結果矩陣的第一個元素

類推刻得到:結果矩陣的 第 [row][col] 個元素 = 前一矩陣的第 row 行 與 后一矩陣的 col列上的元素 逐一相乘 后的乘積之和

代碼及解析:

一、算法剖析:

1.設置兩個for循環用來控制結果(輸出)矩陣的 待賦值元素位置 (即 matrix[i][j] )

2.在這兩個循環環中再嵌套上一個循環 這個循環起到關鍵作用 它用來控制 前一矩陣第 i 行元素的列數 以及 后一矩陣 第 j 列的行數

Java實現的矩陣乘法示例

二、算法代碼:

?/*
 * 計算兩個矩陣相乘的方法
 */
public Matrix mutiply(Matrix m){
    Matrix result = new Matrix(this.getRows(), m.getCols());
    for (int i = 0 ; i < this.getRows() ; i++ ){
        for(int j = 0 ; j < m.getCols() ; j++ ){//正好為矩陣大小,保證了每個元素都被賦值
            for (int num = 0 ; num < this.getCols() ; num++){
                result.setData(i, j, this.getData(i, num) * m.getData(num, j));
            }
        }
    }
    return result;
}

注:具體進行計算時,由于可能出現 前一矩陣行數 不等于 后一矩陣列數等異常情況

需要進行異常處理,這里為了保證算法過程的清晰性暫不加上,希望讀者在具體使用中及時添加。

源碼即測試范例:

public class MatrixTest {
    public static void main(String[] args) {
        //矩陣測試范例
        //僅為輸入參考 無實際作用
        double [][]array01 = {
                {1, 2, 3},
                {4, 5, 6}
        };
        double [][]array02 = {
                {1, 4},
                {2, 5},
                {3, 6}
        };
        double [][] resultMatrix = new double[array01.length][array02[0].length];
        for (int i = 0 ; i < resultMatrix.length ; i++ ){
            for(int j = 0 ; j < resultMatrix[0].length ; j++ ){//正好為矩陣大小,保證了每個元素都被賦值
                for (int num = 0 ; num < array02.length ; num++){
                        resultMatrix[i][j] = resultMatrix[i][j] + array01[i][num]*array02[num][j];
                }
            }
        }
        
        for (int i = 0 ; i < resultMatrix.length ; i++ ){
            for(int j = 0 ; j < resultMatrix[0].length ; j++ ){//正好為矩陣大小,保證了每個元素都被賦值
                System.err.print(resultMatrix[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

輸出范例:

9.0   18.0 
18.0   36.0

希望本文所述對大家java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男女xxoo做爰猛烈动态一 | darkside动漫在线观看 | 九九热精品免费观看 | www.日日操| 精品国产福利片在线观看 | 国产精品秒播无毒不卡 | 天选之王漫画顾长歌免费阅读 | 99re这里只有精品视频在线观看 | 青春草视频免费观看 | 99色亚洲| 日本黄色录像视频 | 日本亚洲欧洲高清有码在线播放 | 欧美日韩看看2015永久免费 | www.精品在线 | 男人的j放进女人的p全黄 | 美女扒开两腿露出尿口的视频 | 日本剧情片在线播放中文版 | 三体动漫在线观看免费完整版2022 | 日本人啪啪| 午夜大片在线观看 | 日日摸日日添日日透 | 无码国产成人777爽死在线观看 | 久久久精品免费视频 | 国模人体aⅴ | 国产一卡2卡3卡4卡公司科普 | 乌克兰xxxxx 我要色色网 | 私人黄色影院 | 成人免费视频播放 | 搓光美女衣 | 欧美灰丝袜丝交nylons | 二次元美女互摸隐私互扒 | 肉大捧一进一出视频免费播放 | 亚洲男人天堂网站 | 九九热视频 这里有精品 | 高清黄色直接看 | 91次元成年破解版 | 日本网络视频www色高清免费 | eee在线播放成人免费 | 午夜亚洲 | 精品午夜寂寞黄网站在线 | 国产精品毛片无码 |