?講解視頻:可以在bilibili搜索《MATLAB教程新手入門篇——數(shù)學(xué)建模清風(fēng)主講》。?
MATLAB教程新手入門篇(數(shù)學(xué)建模清風(fēng)主講,適合零基礎(chǔ)同學(xué)觀看)_嗶哩嗶哩_bilibili
節(jié)選自第3章?3.3.4 矩陣的拼接和重復(fù)
有時(shí)候我們需要對(duì)多個(gè)矩陣進(jìn)行拼接,變成一個(gè)大的矩陣。根據(jù)矩陣拼接的方向,我們可以分為橫向(水平)拼接和縱向(垂直)拼接,如下圖所示:
如上圖所示:橫向拼接要求矩陣的行數(shù)相同;縱向拼接要求矩陣的列數(shù)相同。
在MATLAB中,我們可以使用命令[A, B] 或 [A ?B]對(duì)矩陣A和B進(jìn)行橫向拼接,也可以使用MATLAB中的內(nèi)置函數(shù):horzcat(A,B);類似的,我們可以使用命令[A; B]對(duì)矩陣A和B進(jìn)行縱向拼接,也可以使用MATLAB中的內(nèi)置函數(shù):vertcat(A,B)。
事實(shí)上,horzcat和vertcat兩個(gè)函數(shù)來(lái)源自cat函數(shù),這里的cat不是貓的意思,而是單詞catenate的縮寫,可以翻譯成連接。
cat函數(shù)的用法如下:
命令cat(dim,A,B)表示沿著維度dim方向?qū)⒕仃嘊拼接到矩陣A的末尾。
-
dim = 1時(shí)表示沿著行方向從上往下進(jìn)行拼接,即縱向拼接,因此cat(1,A,B)等價(jià)于vertcat(A,B);
-
dim = 2時(shí)表示沿著列方向從左自右進(jìn)行拼接,即橫向拼接,因此cat(2,A,B)等價(jià)于horzcat(A,B)。
(horzcat函數(shù)中的horz取自英文單詞horizontal,表示水平的意思;vertcat函數(shù)中的vert取自英文單詞vertical,表示豎直的意思)
總結(jié):若A和B的行數(shù)相同,那么使用[A, B]、[A ?B]、horzcat(A,B)以及cat(2,A,B)都能將A和B橫向拼接成一個(gè)大的矩陣;若A和B的列數(shù)相同,那么使用[A; B]、vertcat(A,B)以及cat(1,A,B)都能將A和B縱向拼接成一個(gè)大的矩陣。
下面舉幾個(gè)例子:
(1)??? 橫向拼接的例子
(2)??? 縱向拼接的例子
(3)??? 拼接時(shí)維度不一致導(dǎo)致的報(bào)錯(cuò)
如果橫向拼接時(shí)矩陣的行數(shù)不相同,或者縱向拼接矩陣的列數(shù)不相同,那么MATLAB就會(huì)報(bào)錯(cuò)。
注意,如果要拼接的矩陣的個(gè)數(shù)大于2,也能使用上面的方法進(jìn)行拼接,請(qǐng)看下面的例子:
除了對(duì)矩陣進(jìn)行拼接外,有時(shí)候我們需要對(duì)同一個(gè)矩陣進(jìn)行重復(fù)的堆疊。如下圖所示,我們將矩陣A重復(fù)堆疊m×n次,得到一個(gè)新的矩陣:
在MATLAB中,對(duì)同一個(gè)矩陣進(jìn)行重復(fù)的堆疊的代碼為repmat(A,m,n)。
(如何記住repmat這個(gè)函數(shù)?? repeat表示重復(fù),matrix表示矩陣)
我們舉兩個(gè)例子:
除了對(duì)整個(gè)矩陣進(jìn)行重復(fù)的堆疊外,MATLAB還可以對(duì)向量或者矩陣中的元素進(jìn)行重復(fù),使用到的函數(shù)是repelem。(如何記住repelem: repeat重復(fù) + element元素)
repelem函數(shù)有兩種用法:
(1)????重復(fù)向量v中的元素:repelem(v, n)
當(dāng)n為一個(gè)正整數(shù)時(shí),表示把向量v中的每一個(gè)元素都重復(fù)n次;n也可以為一個(gè)向量,其長(zhǎng)度必須和v的長(zhǎng)度相同,它可以將v中第i個(gè)位置的元素v(i)重復(fù)n(i)次,其中n(i)表示n中第i個(gè)位置的元素。
(2)????重復(fù)矩陣A中的元素:repelem(A,m,n)
m和n分別表示沿著行方向(從上至下)以及沿著列方向(從左至右)將矩陣元素重復(fù)的次數(shù),這里的m和n可以是正整數(shù),也可以是向量。如果m是向量,則m的長(zhǎng)度要和矩陣A的行數(shù)相同;如果n是向量,則n的長(zhǎng)度要和矩陣A的列數(shù)相同。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-836105.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-836105.html
到了這里,關(guān)于MATLAB知識(shí)點(diǎn):矩陣的拼接和重復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!