看論文時(shí),經(jīng)常看到矩陣,但在記憶里又看到數(shù)組。那么問題來了,矩陣和數(shù)組分別是什么?二者有什么區(qū)別?看論文時(shí),經(jīng)常看到矩陣,但在記憶里又看到數(shù)組。那么問題來了,矩陣和數(shù)組分別是什么?二者有什么區(qū)別? 在數(shù)學(xué)上,定義m×n個(gè)數(shù)(i=1, 2…, m ; j=1, 2,… n)排成的m行n列的數(shù)表示為m行n列的矩陣,并且用大寫加粗黑色字母表示。
只有一行的矩陣:,也稱之為行向量; 只有一列的矩陣,也稱之為列向量。
矩陣最早來自于方程組的系數(shù)即常數(shù)所構(gòu)成的方陣,這一個(gè)概念有19世紀(jì)英國(guó)數(shù)學(xué)家凱利首先提出。 數(shù)組是在程序設(shè)計(jì)中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來的一種形式。這些按序排列的同類數(shù)據(jù)元素的集合稱之為數(shù)組。 在Matlab中,一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可以分為數(shù)值數(shù)組、字符數(shù)組、單元數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。 看完上面的內(nèi)容,矩陣和數(shù)組的區(qū)別似乎懂了一點(diǎn)。矩陣和數(shù)組在Matlab中存在很多方面的區(qū)別: (1)矩陣是數(shù)學(xué)的概念,而數(shù)組是計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域的概念; (2)作為一種變換或映射算符的體現(xiàn),矩陣運(yùn)算有著明確而嚴(yán)格的數(shù)學(xué)規(guī)則。而數(shù)組運(yùn)算是Matlab軟件定義的規(guī)則,其目的是為了使數(shù)據(jù)管理方便,操作簡(jiǎn)單,命令形式自然,執(zhí)行計(jì)算有效。 二者聯(lián)系主要體現(xiàn)在:在Matlab中,矩陣是以數(shù)組的形式存在的。因此,一維數(shù)組相當(dāng)于向量;二維數(shù)組相當(dāng)于矩陣。所以矩陣是數(shù)組的子集。 對(duì)矩陣的基本操作,主要有矩陣的構(gòu)建、矩陣維度和矩陣大小的改變、矩陣的索引、矩陣的屬性信息的獲取、矩陣結(jié)構(gòu)的改變等。對(duì)于這些操作,Matlab中都有固定的指令或者相應(yīng)的庫(kù)函數(shù)與之相對(duì)應(yīng)。在程序用到的時(shí)候,每次都要上網(wǎng)查,網(wǎng)上的很散。這里,我對(duì)我經(jīng)常用的做了總結(jié)。以后用到可以查閱。 1、矩陣下表引用
下面將常用的幾個(gè)舉例說明: 例如:A=[1 2 3 4 5; 12 12 14 56 657; 23 46 34 67 56 ]; (1)將二維矩陣A轉(zhuǎn)化成一維矩陣(列向量):Matlab 默認(rèn)將其轉(zhuǎn)化成列向量,需要行向量轉(zhuǎn)置即可。 Matlab程序: A(:) %將二維矩陣其轉(zhuǎn)化成列向量 (2)讀取矩陣取前N行或N列的方法 Matlab程序: A(1:2,:) %讀取矩陣A前2行 A(:,1:3) %讀取矩陣A前3列 (3)求矩陣中每行或每列的最大值和最小值 ① 找矩陣A每列的最大值:[max_A,index]=max(A,[],1); 其中,max_A是最大的數(shù)值,index是最大的數(shù)值所處的位置 ② 找矩陣A每行的最大值:[max_A,index]=max(A,[],2); 其中,max_A是最大的數(shù)值,index是最大的數(shù)值所處的位置 同理可求出每行,每列的最小值。 ③ 找矩陣A每列的最小值:[min_A,index]=min(A,[],1); 其中,min_A是最小的數(shù)值,index是最小的數(shù)值所處的位置 ④ 找矩陣A每行的最小值:[min_A,index]=min(A,[],2); 其中,min_A是最小的數(shù)值,index是最小的數(shù)值所處的位置 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、矩陣運(yùn)算(加、減、乘、除、點(diǎn)乘、點(diǎn)除等) (1)A+B; 表示矩陣A和矩陣B相加(各個(gè)元素對(duì)應(yīng)相加); (2)A-B; 表示矩陣A和矩陣B相減(各個(gè)元素對(duì)應(yīng)相減); (3)A*B; 表示矩陣A和矩陣B相乘; (4)A.*B; 表示矩陣A和矩陣B對(duì)應(yīng)元素相乘(點(diǎn)乘); (5)A/B; 表示矩陣A與矩陣B相除法; (6)A./B; 表示矩陣A和矩陣B對(duì)應(yīng)元素相除(點(diǎn)除); (7)A^B; 表示矩陣A的B次冪; (8)A.^B; 表示矩陣A的每個(gè)元素的B次冪。 Matlab平臺(tái)提供了大量的運(yùn)算函數(shù),很強(qiáng)勢(shì)。下面列舉了常用的函數(shù)
參考資料[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 |
|