Alex_McAvoy

想要成为渔夫的猎手

Matlab 元胞类型

【创建】

赋值语句

利用赋值语句与 {} 即可创建元胞类型的变量

1
2
3
>> a={123,[1,2,3],'hello world',12.5}
a =
[123] [1x3 double] 'hello world' [12.5000]

构造函数

利用 cell(n,m) 构造函数,会创建一个 $n*m$ 的元胞数组,其中每个元素都是一个空数组 [],需要逐个进行赋值

1
2
3
4
5
>> a=cell(3,4)
a =
[] [] [] []
[] [] [] []
[] [] [] []

【访问】

单元外标识

单元外标识

利用 () 可以访问元胞数组中的相应单元

1
2
3
4
5
6
7
8
9
10
11
12
>> a={123,[1,2,3];'hello world',12.5}
a =
[ 123] [1x3 double]
'hello world' [ 12.5000]

>> a(1,2)
ans =
[1x3 double]

>> a(2,1)
ans =
'hello world'

单元内编址

利用 {} 可以访问元胞数组中相应单元的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
>> a={123,[1,2,3];'hello world',12.5}
a =

[ 123] [1x3 double]
'hello world' [ 12.5000]

>> a{1,2}
ans =
1 2 3

>> a{2,1}
ans =
hello world

【基本操作】

合并

可以利用 {} 将元胞类型进行合并

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>> a={123,[1,2,3]}
a =
[123] [1x3 double]

>> b={'hello world',12.5}
b =
'hello world' [12.5000]

>> {a,b}
ans =
{1x2 cell} {1x2 cell}

>> {a;b}
ans =
{1x2 cell}
{1x2 cell}

删除

删除元胞:直接将要删除的元胞赋值为空数组 [] 即可

删除元素:由于元胞类型的存储特性,无法删除元胞中的元素,因此当想要删除元胞中的某个元素时,将其赋值为空数组 [] 即可

改变维度

对于一个 $n*m$ 的元胞数组,可以利用 reshape() 改变其维度

1
2
3
4
5
6
7
8
9
10
>> a={123,[1,2,3],456;'hello world',12.5,456}
a =
[ 123] [1x3 double] [456]
'hello world' [ 12.5000] [456]

>> reshape(a,3,2)
ans =
[ 123] [12.5000]
'hello world' [ 456]
[1x3 double] [ 456]

数据类型判断

  • isnumeric(A):判断 A 是否是一个数值型元胞数组
  • islogical(A):判断 A 是否是一个逻辑型元胞数组
  • isstruct(A):判断 A 是否是结构体元胞数组
  • isfloat(A):判断 A 是否为浮点型元胞数组
感谢您对我的支持,让我继续努力分享有用的技术与知识点!