加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB的cat()函数

(2012-09-05 11:09:27)
标签:

杂谈

分类: Matlab

cat:用来联结数组

用法:C = cat(dim, A, B) 按dim来联结A和B两个数组。

C = cat(dim, A1, A2, A3, ...) 按dim联结所有输入的数组。

e.g.

a=cat(3,A,B) 左括号后的3表示构造出的矩阵维数;在新的矩阵中第1、2维就是A和B这两个矩阵的行数和列数,第3维是A和B这两个矩阵的矩阵个数,即为2

cat(2, A, B)相当于[A, B];

cat(1, A, B)相当于[A; B].

使用“,”分割列表的语法,cat(dim, C{:})或cat(dim, C.field),这是将包含数据矩阵的cell或结构数组联合为一个数组的方便方式。

例如:

>> A = [1 2; 3 4];

>> B = [5 6; 7 8];

>> A

A =

1 2

3 4

>> B

B =

5 6

7 8

>> cat(1, A, B) %按列连接(列数相同)

ans =

1 2

3 4

5 6

7 8

>> cat(2, A, B) %按行连接(行数相同)

ans =

1 2 5 6

3 4 7 8

>> cat(3, A, B) %合成效果如下图

ans(:,:,1) =

1 2

3 4

ans(:,:,2) =

5 6

7 8

a = magic(3)
b = pascal(3)
k=1,合并后形如 [a;b],行添加矩阵(要求a,b的列数相等才能合并);

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

c =
8 1 6

3 5 7

4 9 2
1 1 1
1 2 3
1 3 6
k=2,合并后形如[a,b],列添加矩阵(要求a,b的行数相等才能合并)
>> c = cat(2,a,b)
c =
8 1 6 1 1 1

3 5 7 1 2 3

4 9 2 1 3 6
>> c = cat(3,a,b)
c(:,:,1) =
8 1 6

3 5 7

4 9 2
c(:,:,2) =
1 1 1

1 2 3

1 3 6
n维的矩阵合并,要求n-1维维数相等才可以.
>> c = cat(4,a,b)
c(:,:,1,1) =
8 1 6

3 5 7

4 9 2
c(:,:,1,2) =
1 1 1

1 2 3
1 3 6

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有