欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年03月14日 09:12:42   作者:水中魚(yú)之1999  
這篇文章主要介紹了Java實(shí)現(xiàn)的矩陣乘法,簡(jiǎn)單描述了矩陣乘法的原理,并結(jié)合實(shí)例形式分析了java實(shí)現(xiàn)矩陣乘法的相關(guān)操作技巧,需要的朋友可以參考下

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

思路:

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

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

類推刻得到:結(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ù)

二、算法代碼:

​/*
 * 計(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

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

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

相關(guān)文章

  • Java大數(shù)運(yùn)算BigInteger與進(jìn)制轉(zhuǎn)換詳解

    Java大數(shù)運(yùn)算BigInteger與進(jìn)制轉(zhuǎn)換詳解

    這篇文章主要介紹了Java大數(shù)運(yùn)算BigInteger與進(jìn)制轉(zhuǎn)換詳解,Java 提供了 BigInteger(大整數(shù))類和 BigDecimal(大浮點(diǎn)數(shù))類用于大數(shù)運(yùn)算,這兩個(gè)類都繼承自 Number 類(抽象類),由于 BigInteger 在大數(shù)運(yùn)算中更常見(jiàn),需要的朋友可以參考下
    2023-09-09
  • Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)IO版本

    Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)IO版本

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)IO版本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Spring Boot非Web項(xiàng)目運(yùn)行配置的方法教程

    Spring Boot非Web項(xiàng)目運(yùn)行配置的方法教程

    這篇文章主要介紹了Spring Boot非Web項(xiàng)目運(yùn)行配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java中的顯示鎖ReentrantLock使用與原理詳解

    Java中的顯示鎖ReentrantLock使用與原理詳解

    這篇文章主要介紹了Java中的顯示鎖ReentrantLock使用與原理詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Java的Struts2框架配合Ext JS處理JSON數(shù)據(jù)的使用示例

    Java的Struts2框架配合Ext JS處理JSON數(shù)據(jù)的使用示例

    這篇文章主要介紹了Java的Struts2框架配合Ext JS處理JSON數(shù)據(jù)的使用示例,包括將Ext JS中的JSON數(shù)據(jù)解析為列表的方法,需要的朋友可以參考下
    2016-03-03
  • Java 實(shí)現(xiàn)模擬用戶登錄的示例代碼

    Java 實(shí)現(xiàn)模擬用戶登錄的示例代碼

    這篇文章主要介紹了Java 實(shí)現(xiàn)模擬用戶登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 基于java ssm springboot+mybatis酒莊內(nèi)部管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    基于java ssm springboot+mybatis酒莊內(nèi)部管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了java ssm springboot+mybatis實(shí)現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 使用java實(shí)現(xiàn)百萬(wàn)級(jí)別數(shù)據(jù)導(dǎo)出excel的三種方式

    使用java實(shí)現(xiàn)百萬(wàn)級(jí)別數(shù)據(jù)導(dǎo)出excel的三種方式

    這篇文章主要介紹了使用java實(shí)現(xiàn)百萬(wàn)級(jí)別數(shù)據(jù)導(dǎo)出excel的三種方式,有些業(yè)務(wù)系統(tǒng)可能動(dòng)輒涉及到百萬(wàn)上千萬(wàn)的數(shù)據(jù),用正常的方法效率就變得很低,今天我們來(lái)看看這幾種實(shí)現(xiàn)思路
    2023-03-03
  • Eclipse插件大全 挑選最牛的TOP30(全)

    Eclipse插件大全 挑選最牛的TOP30(全)

    ?“Eclipse最牛的30個(gè)插件”不知道看官們是否了解,風(fēng)少俠特意翻譯出來(lái)奉獻(xiàn)給各位,希望大家喜歡
    2013-02-02
  • 詳解Spring中bean實(shí)例化的三種方式

    詳解Spring中bean實(shí)例化的三種方式

    本篇文章主要介紹了詳解Spring中bean實(shí)例化的三種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04

最新評(píng)論