MATLAB中「repmat」與「cat」函數的用法

MATLAB中「repmat」與「cat」函數的用法

做者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/函數

1. repmat函數

>> z=repmat(5,2,3)

z =

     5     5     5
     5     5     5

>> y=repmat([6,5;7,9],3,4)

y =

     6     5     6     5     6     5     6     5
     7     9     7     9     7     9     7     9
     6     5     6     5     6     5     6     5
     7     9     7     9     7     9     7     9
     6     5     6     5     6     5     6     5
     7     9     7     9     7     9     7     9

>> x=repmat([1:5;2:6],2,3)

x =

     1     2     3     4     5     1     2     3     4     5     1     2     3     4     5
     2     3     4     5     6     2     3     4     5     6     2     3     4     5     6
     1     2     3     4     5     1     2     3     4     5     1     2     3     4     5
     2     3     4     5     6     2     3     4     5     6     2     3     4     5     6

repmat函數中第一個值是元素(或向量、矩陣)的值,第二個值爲行數,第三個爲列數。spa

z=repmat(5,2,3),生成2行3列元素爲5的矩陣。blog

y=repmat([6,5;7,9],3,4),生成3行5列元素爲[6,5;7,9]的分塊矩陣。get

x=repmat([1:5;2:6],2,3),生成3行5列元素爲[1,2,3,4,5;2,3,4,5,6]的分塊矩陣。博客

2. cat函數

先生成一些大小相同的矩陣class

>> a=repmat(5,3,5)

a =

     5     5     5     5     5
     5     5     5     5     5
     5     5     5     5     5

>> b=repmat(6,3,5)

b =

     6     6     6     6     6
     6     6     6     6     6
     6     6     6     6     6

>> c=repmat(7,3,5)

c =

     7     7     7     7     7
     7     7     7     7     7
     7     7     7     7     7

>> d=repmat(8,3,5)

d =

     8     8     8     8     8
     8     8     8     8     8
     8     8     8     8     8

下面爲cat函數的用法di

>> e=cat(1,a,b,c,d)

e =

     5     5     5     5     5
     5     5     5     5     5
     5     5     5     5     5
     6     6     6     6     6
     6     6     6     6     6
     6     6     6     6     6
     7     7     7     7     7
     7     7     7     7     7
     7     7     7     7     7
     8     8     8     8     8
     8     8     8     8     8
     8     8     8     8     8

>> f=cat(2,a,b,c,d)

f =

     5     5     5     5     5     6     6     6     6     6     7     7     7     7     7     8     8     8     8     8
     5     5     5     5     5     6     6     6     6     6     7     7     7     7     7     8     8     8     8     8
     5     5     5     5     5     6     6     6     6     6     7     7     7     7     7     8     8     8     8     8

>> g=cat(3,a,b,c,d)

g(:,:,1) =

     5     5     5     5     5
     5     5     5     5     5
     5     5     5     5     5


g(:,:,2) =

     6     6     6     6     6
     6     6     6     6     6
     6     6     6     6     6


g(:,:,3) =

     7     7     7     7     7
     7     7     7     7     7
     7     7     7     7     7


g(:,:,4) =

     8     8     8     8     8
     8     8     8     8     8
     8     8     8     8     8

>> h=cat(4,a,b,c,d)

h(:,:,1,1) =

     5     5     5     5     5
     5     5     5     5     5
     5     5     5     5     5


h(:,:,1,2) =

     6     6     6     6     6
     6     6     6     6     6
     6     6     6     6     6


h(:,:,1,3) =

     7     7     7     7     7
     7     7     7     7     7
     7     7     7     7     7


h(:,:,1,4) =

     8     8     8     8     8
     8     8     8     8     8
     8     8     8     8     8

通常用到三維,四維及以上不多用。matlab

e=cat(1,a,b,c,d),將a, b, c, d矩陣按列排。co

f=cat(2,a,b,c,d),將a, b, c, d矩陣按行排。生成

g=cat(3,a,b,c,d),g是一個三維陣(3*5*4),前兩個維度和a, b, c, d的大小同樣,第三個維度爲a, b, c, d矩陣的個數:4。

h=cat(4,a,b,c,d),h是一個四維陣,h(:,:,1,i)=h(:,:,i)。以下所示:

>> h(:,:,1)

ans =

     5     5     5     5     5
     5     5     5     5     5
     5     5     5     5     5

>> h(:,:,2)

ans =

     6     6     6     6     6
     6     6     6     6     6
     6     6     6     6     6

>> h(:,:,3)

ans =

     7     7     7     7     7
     7     7     7     7     7
     7     7     7     7     7

>> h(:,:,4)

ans =

     8     8     8     8     8
     8     8     8     8     8
     8     8     8     8     8

以上就是repmat與cat函數的簡單用法。

相關文章
相關標籤/搜索