欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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里面还有很多针对于元胞数组的函数,想很通俗的知道这些函数的用法,请阅读我的下一篇文章。

相关标签: matlab 元胞数组