看論文時,經??吹骄仃?,但在記憶里又看到數組。那么問題來了,矩陣和數組分別是什么?二者有什么區(qū)別?看論文時,經??吹骄仃嚕谟洃浝镉挚吹綌到M。那么問題來了,矩陣和數組分別是什么?二者有什么區(qū)別? 在數學上,定義m×n個數(i=1, 2…, m ; j=1, 2,… n)排成的m行n列的數表示為m行n列的矩陣,并且用大寫加粗黑色字母表示。
只有一行的矩陣:,也稱之為行向量; 只有一列的矩陣,也稱之為列向量。
矩陣最早來自于方程組的系數即常數所構成的方陣,這一個概念有19世紀英國數學家凱利首先提出。 數組是在程序設計中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來的一種形式。這些按序排列的同類數據元素的集合稱之為數組。 在Matlab中,一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可以分為數值數組、字符數組、單元數組、結構數組等各種類別。 看完上面的內容,矩陣和數組的區(qū)別似乎懂了一點。矩陣和數組在Matlab中存在很多方面的區(qū)別: (1)矩陣是數學的概念,而數組是計算機程序設計領域的概念; (2)作為一種變換或映射算符的體現,矩陣運算有著明確而嚴格的數學規(guī)則。而數組運算是Matlab軟件定義的規(guī)則,其目的是為了使數據管理方便,操作簡單,命令形式自然,執(zhí)行計算有效。 二者聯(lián)系主要體現在:在Matlab中,矩陣是以數組的形式存在的。因此,一維數組相當于向量;二維數組相當于矩陣。所以矩陣是數組的子集。 對矩陣的基本操作,主要有矩陣的構建、矩陣維度和矩陣大小的改變、矩陣的索引、矩陣的屬性信息的獲取、矩陣結構的改變等。對于這些操作,Matlab中都有固定的指令或者相應的庫函數與之相對應。在程序用到的時候,每次都要上網查,網上的很散。這里,我對我經常用的做了總結。以后用到可以查閱。 1、矩陣下表引用
下面將常用的幾個舉例說明: 例如:A=[1 2 3 4 5; 12 12 14 56 657; 23 46 34 67 56 ]; (1)將二維矩陣A轉化成一維矩陣(列向量):Matlab 默認將其轉化成列向量,需要行向量轉置即可。 Matlab程序: A(:) %將二維矩陣其轉化成列向量 (2)讀取矩陣取前N行或N列的方法 Matlab程序: A(1:2,:) %讀取矩陣A前2行 A(:,1:3) %讀取矩陣A前3列 (3)求矩陣中每行或每列的最大值和最小值 ① 找矩陣A每列的最大值:[max_A,index]=max(A,[],1); 其中,max_A是最大的數值,index是最大的數值所處的位置 ② 找矩陣A每行的最大值:[max_A,index]=max(A,[],2); 其中,max_A是最大的數值,index是最大的數值所處的位置 同理可求出每行,每列的最小值。 ③ 找矩陣A每列的最小值:[min_A,index]=min(A,[],1); 其中,min_A是最小的數值,index是最小的數值所處的位置 ④ 找矩陣A每行的最小值:[min_A,index]=min(A,[],2); 其中,min_A是最小的數值,index是最小的數值所處的位置 2、矩陣合并已知矩陣: A=[1 2 3 4 5; 12 12 14 56 657; 23 46 34 67 56]; B=[1 1 1 1 1; 2 2 2 2 2; 3 3 3 3 3]; (1)矩陣A,B左右合并:horzcat(A,B); %矩陣A,B左右合并 (2)矩陣A,B上下合并:vertcat(A,B); %矩陣A,B上下合并 3、矩陣運算(加、減、乘、除、點乘、點除等) (1)A+B; 表示矩陣A和矩陣B相加(各個元素對應相加); (2)A-B; 表示矩陣A和矩陣B相減(各個元素對應相減); (3)A*B; 表示矩陣A和矩陣B相乘; (4)A.*B; 表示矩陣A和矩陣B對應元素相乘(點乘); (5)A/B; 表示矩陣A與矩陣B相除法; (6)A./B; 表示矩陣A和矩陣B對應元素相除(點除); (7)A^B; 表示矩陣A的B次冪; (8)A.^B; 表示矩陣A的每個元素的B次冪。 Matlab平臺提供了大量的運算函數,很強勢。下面列舉了常用的函數
參考資料[1] https://blog.csdn.net/yundanfengqing_nuc/article/details/49246477 [2] http://blog.sina.com.cn/s/blog_70c7b3780100ru11.html [3] https://blog.csdn.net/carrie8899/article/details/8500088 |
|
來自: 星光閃亮圖書館 > 《MATLAB學習》