国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > Java > 正文

Java實(shí)現(xiàn)的矩陣乘法示例

2024-07-14 08:43:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

思路:

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

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

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

代碼及解析:

一、算法剖析:

1.設(shè)置兩個(gè)for循環(huán)用來(lái)控制結(jié)果(輸出)矩陣的 待賦值元素位置 (即 matrix[i][j] )

2.在這兩個(gè)循環(huán)環(huán)中再嵌套上一個(gè)循環(huán) 這個(gè)循環(huán)起到關(guān)鍵作用 它用來(lái)控制 前一矩陣第 i 行元素的列數(shù) 以及 后一矩陣 第 j 列的行數(shù)

Java,矩陣乘法

二、算法代碼:

?/* * 計(jì)算兩個(gè)矩陣相乘的方法 */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++ ){//正好為矩陣大小,保證了每個(gè)元素都被賦值            for (int num = 0 ; num < this.getCols() ; num++){                result.setData(i, j, this.getData(i, num) * m.getData(num, j));            }        }    }    return result;}

注:具體進(jìn)行計(jì)算時(shí),由于可能出現(xiàn) 前一矩陣行數(shù) 不等于 后一矩陣列數(shù)等異常情況

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

源碼即測(cè)試范例:

public class MatrixTest {    public static void main(String[] args) {        //矩陣測(cè)試范例        //僅為輸入?yún)⒖?無(wú)實(shí)際作用        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++ ){//正好為矩陣大小,保證了每個(gè)元素都被賦值                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++ ){//正好為矩陣大小,保證了每個(gè)元素都被賦值                System.err.print(resultMatrix[i][j] + "/t");            }            System.out.println();        }    }}

輸出范例:

9.0   18.0 
18.0   36.0

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 容城县| 宜川县| 平陆县| 宿州市| 清涧县| 明水县| 奉新县| 诏安县| 开封县| 丰顺县| 景洪市| 宝坻区| 甘南县| 台南市| 金阳县| 富裕县| 耒阳市| 财经| 三门县| 呈贡县| 东丰县| 舞阳县| 盖州市| 峡江县| 莱芜市| 平顶山市| 古蔺县| 佛冈县| 犍为县| 南雄市| 明溪县| 武川县| 邯郸市| 安塞县| 汉寿县| 阿克陶县| 大安市| 无极县| 河津市| 印江| 方山县|