最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?超詳細帶你掌握矩陣的運算

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

在我們計算機江湖中一直流傳著這樣一句話:矩陣是無所不能的。我們在熒幕中所看到的二維三維圖形的移動變換,放大縮小,任由我們的“擺布”,可是你知道這些變換是如何在計算機中實現(xiàn)的嗎?在這一章耀楊帶著兄弟萌初步了解這無所不能的矩陣,也為了破掉這層矩陣找到佳慧?。?!

1.物體的坐標變換

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

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

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

1.1平移:

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

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

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

在這里插入圖片描述

1.2縮放:

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

在這里插入圖片描述

1.3旋轉(zhuǎn):

在這里插入圖片描述

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

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

通過這個結(jié)果我們推導到矩陣計算是:

在這里插入圖片描述

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

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

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

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

1.4矩陣乘法

在這里插入圖片描述

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

2.java實現(xiàn)矩陣的相關(guā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);//退出虛擬機
		}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("運算結(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 超詳細帶你掌握矩陣的運算的文章就介紹到這了,更多相關(guān)Java 矩陣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA搭建SpringBoot離線工程的方法

    IDEA搭建SpringBoot離線工程的方法

    這篇文章主要介紹了IDEA搭建SpringBoot離線工程的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Java利用IO流實現(xiàn)簡易的記事本功能

    Java利用IO流實現(xiàn)簡易的記事本功能

    本文將利用Java中IO流編寫一個模擬日記本的程序,通過在控制臺輸入指令,實現(xiàn)在本地新建文件,打開日記本和修改日記本等功能,感興趣的可以了解一下
    2022-05-05
  • spring依賴注入成功但在調(diào)用接口的時候拿到的依賴卻是null問題

    spring依賴注入成功但在調(diào)用接口的時候拿到的依賴卻是null問題

    這篇文章主要介紹了spring依賴注入成功但在調(diào)用接口的時候拿到的依賴卻是null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Presto自定義函數(shù)@SqlNullable引發(fā)問題詳解

    Presto自定義函數(shù)@SqlNullable引發(fā)問題詳解

    這篇文章主要為大家介紹了Presto自定義函數(shù)@SqlNullable引發(fā)問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • SpringBoot Swagger2 接口規(guī)范示例詳解

    SpringBoot Swagger2 接口規(guī)范示例詳解

    Swagger(在谷歌、IBM、微軟等公司的支持下)做了一個公共的文檔風格來填補上述問題,在本文中,我們將會學習怎么使用Swagger的 Swagger2注解去生成REST API文檔,感興趣的朋友一起看看吧
    2023-12-12
  • java用撲克牌計算24點

    java用撲克牌計算24點

    這篇文章主要為大家詳細介紹了java實現(xiàn)24點撲克牌游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Maven項目如何查找jar包是由哪個依賴引入的

    Maven項目如何查找jar包是由哪個依賴引入的

    這篇文章主要介紹了Maven項目如何查找jar包是由哪個依賴引入的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解Java單元測試之JUnit篇

    詳解Java單元測試之JUnit篇

    這篇文章主要介紹了詳解Java單元測試之JUnit篇,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java實現(xiàn)ModbusTCP通信功能

    Java實現(xiàn)ModbusTCP通信功能

    使用ModbusTCP實現(xiàn)和硬件設(shè)備通信功能,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-08-08
  • 整理java讀書筆記十五之java中的內(nèi)部類

    整理java讀書筆記十五之java中的內(nèi)部類

    內(nèi)部類是指在一個外部類的內(nèi)部再定義一個類。類名不需要和文件夾相同。本文給大家分享java讀書筆記十五之java中的內(nèi)部類,對java讀書筆記相關(guān)知識感興趣的朋友一起學習吧
    2015-12-12

最新評論

神木县| 五家渠市| 茌平县| 都江堰市| 怀化市| 东乡| 江津市| 鸡西市| 隆昌县| 海丰县| 海伦市| 慈利县| 湛江市| 临武县| 大城县| 佛教| 谢通门县| 同德县| 绥德县| 舟山市| 扎赉特旗| 南涧| 辉县市| 济源市| 花莲市| 贵州省| 凭祥市| 名山县| 高唐县| 潜江市| 沧源| 喀什市| 焦作市| 鄱阳县| 漳州市| 神木县| 靖边县| 邵阳市| 彭州市| 万山特区| 德清县|