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

Java?超詳細(xì)帶你掌握矩陣的運(yùn)算

 更新時(shí)間:2022年03月30日 15:16:57   作者:跟著耀楊學(xué)編程  
在學(xué)習(xí)機(jī)器學(xué)習(xí)算法時(shí),發(fā)現(xiàn)運(yùn)用java?來實(shí)現(xiàn)有些算法代碼時(shí),會(huì)有很大困難,其中有一點(diǎn)就是?java?本身并沒有矩陣運(yùn)算的?api,所以進(jìn)行要實(shí)現(xiàn)矩陣運(yùn)算就尤其復(fù)雜,讓我們一起了解矩陣的運(yùn)算

在我們計(jì)算機(jī)江湖中一直流傳著這樣一句話:矩陣是無所不能的。我們?cè)跓赡恢兴吹降亩S三維圖形的移動(dòng)變換,放大縮小,任由我們的“擺布”,可是你知道這些變換是如何在計(jì)算機(jī)中實(shí)現(xiàn)的嗎?在這一章耀楊帶著兄弟萌初步了解這無所不能的矩陣,也為了破掉這層矩陣找到佳慧?。?!

1.物體的坐標(biāo)變換

咱們直接進(jìn)入正題,計(jì)算機(jī)中我們鎖看到的物體移動(dòng)無疑例外設(shè)計(jì)到坐標(biāo)變換,平移,旋轉(zhuǎn),縮放這些都伴隨著坐標(biāo)的變換。

計(jì)算機(jī)會(huì)根據(jù)物體在計(jì)算機(jī)中的位置以及我們的位置分別對(duì)物體的各個(gè)定點(diǎn)進(jìn)行一系列的坐標(biāo)運(yùn)算,最后投影到屏幕上被我們所看到二維圖像。

計(jì)算機(jī)中的圖形不可能想現(xiàn)實(shí)中可以用“力”來實(shí)現(xiàn),那么計(jì)算機(jī)是怎么移動(dòng)這些物體的呢?這些坐標(biāo)自然有了作用。

1.1平移:

x’=x+tx
y’=y+ty

由于在計(jì)算機(jī)中對(duì)物體進(jìn)行頂點(diǎn)之間的操作過去繁瑣,在對(duì)多物體操作的時(shí)候用矩陣的乘法進(jìn)行運(yùn)算不僅大大提高了效率,也方便了物體進(jìn)行連續(xù)的變換。

加法轉(zhuǎn)變成矩陣相乘比較有意思~由于加法中涉及到常量tx和ty所以無法直接通過2*2矩陣進(jìn)行變換,在這里給兄弟萌講解一個(gè)技巧——齊次坐標(biāo),這種給矩陣添加一個(gè)維度的技巧在矩陣運(yùn)算中經(jīng)常用到,還可以通過其次坐標(biāo)進(jìn)行矩陣的除法運(yùn)算。

在這里插入圖片描述

1.2縮放:

x’=Sx * x
y’=Sy * y

在這里插入圖片描述

1.3旋轉(zhuǎn):

在這里插入圖片描述

如圖:可得出旋轉(zhuǎn)后的坐標(biāo)為:(通過正弦公式和余弦公式)

x’=xcosθ-ysinθ
y’=xsinθ+ycosθ

通過這個(gè)結(jié)果我們推導(dǎo)到矩陣計(jì)算是:

在這里插入圖片描述

??根據(jù)這樣的定義,我們就可以推導(dǎo)二維空間中的任意變換都可以用一個(gè)3 * 3 矩陣來表示。

??同理,在三維空間中的任意變換我們可以用一個(gè)4 * 4 矩陣來表示。

??在4 * 4矩陣中還可以實(shí)現(xiàn)三維物體的透視投影,憑借齊次坐標(biāo)實(shí)現(xiàn)矩陣的除法等等。

當(dāng)然了關(guān)于矩陣還有很多更深入的知識(shí)等著大家探索,為師之后也會(huì)給大家持續(xù)教學(xué)!

1.4矩陣乘法

在這里插入圖片描述

加減法為師就不介紹了,想必兄弟萌也都明白。

2.java實(shí)現(xiàn)矩陣的相關(guān)運(yùn)算

2.1創(chuàng)建矩陣:

public int[][] createMatric(int row,int colum){
		@SuppressWarnings("resource")
		Scanner input=new Scanner(System.in);
		int array[][]=new int[row][colum];
		for(int i=0;i<array.length;i++)
			for(int j=0;j<array[i].length;j++){
				array[i][j]=input.nextInt();
			}
		return array;
	}

2.2矩陣加法:

public int[][] matricAdd(int matric1[][],int matric2[][] ){
		int matric3[][]=new int[matric1.length][matric1[0].length];
		if(matric1.length!=matric2.length||matric1[0].length!=matric2[0].length){			
			System.out.println("輸入格式有誤");
			System.exit(0);
		}else{
			for(int i=0;i<matric1.length;i++)
				for(int j=0;j<matric1[0].length;j++)
					matric3[i][j]=matric1[i][j]+matric2[i][j];
		}
		return matric3;
	}

2.3矩陣減法:

public int[][] matricJian(int matric1[][],int matric2[][] ){
		int matric3[][]=new int[matric1.length][matric1[0].length];
		if(matric1.length!=matric2.length||matric1[0].length!=matric2[0].length){
			System.out.println("輸入格式有誤");
			System.exit(0);
		}else{
			for(int i=0;i<matric1.length;i++)
				for(int j=0;j<matric1[0].length;j++){
					matric3[i][j]=matric1[i][j]-matric2[i][j];
				}
		}
		return matric3;
	}

2.4矩陣乘法:

public int[][] matricCheng(int matric1[][],int matric2[][]){
		int matric3[][]=new int[matric1.length][matric1[0].length];
		if(matric1.length!=matric2[0].length||matric1[0].length!=matric2.length){
			System.out.println("輸入格式有誤");
			System.exit(0);//退出虛擬機(jī)
		}else {
			for(int i=0;i<matric1.length;i++)
				for(int j=0;j<matric2[0].length;j++)
					for(int k=0;k<matric2.length;k++)
						matric3[i][j]+=matric1[i][k]*matric2[k][j];
		}
		return matric3;
	}

2.5矩陣的轉(zhuǎn)置

public int[][] matricReserve(int matric[][]){
		int matric3[][]=new int[matric[0].length][matric.length];
		for(int i=0;i<matric.length;i++) {
			for(int j=0;j<matric[0].length;j++) {
				matric3[j][i]=matric[i][j];
			}
		}
		return matric3;
	}

2.6矩陣和數(shù)字相乘

public int[][] matricShuCheng(int matric[][],int x){
		for(int i=0;i<matric.length;i++)
			for(int j=0;j<matric[0].length;j++) {
				matric[i][j]=matric[i][j]*x;
			}
		return matric;
	}

2.7矩陣的輸出

public void inputMatric(int matric[][]) {
		System.out.println("運(yùn)算結(jié)果為:");
		for(int i=0;i<matric.length;i++) {
			for(int j=0;j<matric[0].length;j++) {
				System.out.print(matric[i][j]+" ");
			}
			System.out.println("");
		}
	}

到此這篇關(guān)于Java 超詳細(xì)帶你掌握矩陣的運(yùn)算的文章就介紹到這了,更多相關(guān)Java 矩陣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)簡單登錄界面的實(shí)戰(zhàn)過程

    java實(shí)現(xiàn)簡單登錄界面的實(shí)戰(zhàn)過程

    學(xué)習(xí)JAVA的過程當(dāng)中,登陸界面是多數(shù)人第一個(gè)實(shí)現(xiàn)的小程序,下面這篇文章主要給大家介紹了關(guān)于利用java實(shí)現(xiàn)簡單登錄界面的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Spring websocket并發(fā)發(fā)送消息異常的解決

    Spring websocket并發(fā)發(fā)送消息異常的解決

    本文主要介紹了 Spring websocket并發(fā)發(fā)送消息異常的解決,當(dāng)多個(gè)線程同時(shí)嘗試通過 WebSocket 會(huì)話發(fā)送消息時(shí),會(huì)拋出異常,下面就來解決一下,感興趣的可以了解一下
    2023-09-09
  • Java BigDecimal和double示例及相關(guān)問題解析

    Java BigDecimal和double示例及相關(guān)問題解析

    這篇文章主要介紹了Java BigDecimal和double示例及相關(guān)問題解析,簡單介紹了BigDecimal類的相關(guān)內(nèi)容,分享了兩則相關(guān)實(shí)例,對(duì)問題進(jìn)行了分析,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java解壓和壓縮帶密碼的zip文件過程詳解

    Java解壓和壓縮帶密碼的zip文件過程詳解

    這篇文章主要介紹了Java解壓和壓縮帶密碼的zip文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來學(xué)習(xí)一下吧
    2019-06-06
  • SpringBoot與Postman實(shí)現(xiàn)REST模擬請(qǐng)求的操作

    SpringBoot與Postman實(shí)現(xiàn)REST模擬請(qǐng)求的操作

    這篇文章主要介紹了SpringBoot與Postman實(shí)現(xiàn)REST模擬請(qǐng)求的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Security中的WebSecurityConfigurerAdapter詳解

    Security中的WebSecurityConfigurerAdapter詳解

    這篇文章主要介紹了Security中的WebSecurityConfigurerAdapter詳解,今天我們要進(jìn)一步的的學(xué)習(xí)如何自定義配置Spring?Security,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java實(shí)現(xiàn)斷點(diǎn)下載服務(wù)端與客戶端的示例代碼

    Java實(shí)現(xiàn)斷點(diǎn)下載服務(wù)端與客戶端的示例代碼

    這篇文章主要為大家介紹了如何實(shí)現(xiàn)服務(wù)端(Spring Boot)與客戶端(Android)的斷點(diǎn)下載與下載續(xù)傳功能,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-08-08
  • 淺談SSH框架中spring的原理

    淺談SSH框架中spring的原理

    下面小編就為大家?guī)硪黄獪\談SSH框架中spring的原理。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java使用jacob將微軟office中word、excel、ppt轉(zhuǎn)成pdf

    Java使用jacob將微軟office中word、excel、ppt轉(zhuǎn)成pdf

    這篇文章主要為大家詳細(xì)介紹了Java使用jacob將微軟office中word、excel、ppt轉(zhuǎn)成pdf,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Java基礎(chǔ)之反射技術(shù)相關(guān)知識(shí)總結(jié)

    Java基礎(chǔ)之反射技術(shù)相關(guān)知識(shí)總結(jié)

    今天帶大家復(fù)習(xí)Java基礎(chǔ)知識(shí),文中對(duì)Java反射技術(shù)介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,,需要的朋友可以參考下
    2021-05-05

最新評(píng)論