MATLAB中“repmat”与“cat”函数的用法

时间:2024-04-16 09:04:46

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函数的简单用法。