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函数中第一个值是元素(或向量、矩阵)的值,第二个值为行数,第三个为列数。
z=repmat(5,2,3),生成2行3列元素为5的矩阵。
y=repmat([6,5;7,9],3,4),生成3行5列元素为[6,5;7,9]的分块矩阵。
x=repmat([1:5;2:6],2,3),生成3行5列元素为[1,2,3,4,5;2,3,4,5,6]的分块矩阵。
2. cat函数
先生成一些大小相同的矩阵
- >> 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函数的用法
- >> 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
一般用到三维,四维及以上很少用。
e=cat(1,a,b,c,d),将a, b, c, d矩阵按列排。
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函数的简单用法。