Matlab中的元胞数组
程序员文章站
2022-03-31 20:46:58
...
Matlab中的元胞数组
元胞数组其实广义来说我们可以把它看成一个矩阵,里面鱼龙混杂,啥数据类型都可以有,元胞里面有个胞字,且英文是cell,就是细胞的意思,我们就可以联想到细胞来帮助我们理解,细胞里面有细胞质,细胞核等等,同时一个元胞数组里面也可以有不同数据类型的数据类型,下面我们来举例子来帮助我们对元胞数组的理解:
%创建方法一: 利用 ‘{}’ 来创建
>> cell1={'helloworld',23;[1,2;3,4],2:30}
cell1 =
'helloworld' [ 23]
[2x2 double] [1x29 double]
%创建方法二 外面是一个[],里面的每一个元素都用{}括起来
>> cell2=[{'helloworld'},{23};{[1,2;3,4]},{2:30}]
cell2 =
'helloworld' [ 23]
[2x2 double] [1x29 double]
%创建方式三 创建的时候随意定义里面的元素,如果说维度大于初始定义的维度,那么没有定义到的元素都是[]
>> cell3={90}
cell3 =
[90]
>> cell3(3,5)={80};%再往元胞数组放数据的时候需要加上“{}”
>> cell3
cell3 =
[90] [] [] [] []
[] [] [] [] []
[] [] [] [] [80]
%创建方式四 创建空的元胞数组,他的作用是为数组预先分配储存空间,节约内存的占用,提高执行的效率
具体内容如下:
>> a=cell(1,2)
a =
[] []
>> b=cell(3,3)
b =
[] [] []
[] [] []
[] [] []
a,b就是这些个元胞数组的名字和上面的cell1,cell2,cell3一样
2.上面我们已经会创建一个元胞数组了,下面我们来试着对其进行调用
1,我们在调用的时候有两种很重要的调用方式。我们先来简单创建一个元胞数组:
a={1:10,'string';zeros(1,2),ones(1,2)}
a =
[1x10 double] 'string'
[1x2 double] [1x2 double]
然后我们来看下面的两种结果:
>> var1=a(1,2)
var1 =
'string'
>> class(var1)
ans =
cell
%上面的一段代码用的是(),他的数据类型是cell型的,指的是指定的元胞
>> var2=a{1,2}
var2 =
string
>> class(var2)
ans =
char
%这一段代码用的是{},其赋给变量var2,而其类型就是这个元胞数组里面真实的内容的数据类型
3.如何对元胞数组里面的数据进行删除操作呢?
其实很简单,我们现在已经会了对元素的调用,我们想删除那个元素就把他调出来,然后让他={[]}即可,下面举个小例子:
>> a={1,2,3;4,5,6;7,8,9}
a =
[1] [2] [3]
[4] [5] [6]
[7] [8] [9]
>> a(5,5)={20}
a =
[1] [2] [3] [] []
[4] [5] [6] [] []
[7] [8] [9] [] []
[] [] [] [] []
[] [] [] [] [20]
>> a(2,2)={[]}
a =
[1] [2] [3] [] []
[4] [] [6] [] []
[7] [8] [9] [] []
[] [] [] [] []
[] [] [] [] [20]
今天元胞数组的基本的内容已经讲完了,其实他和数组很像,只是多了一些特殊的部分,而matlab里面还有很多针对于元胞数组的函数,想很通俗的知道这些函数的用法,请阅读我的下一篇文章。