跳转到内容

MATLAB 编程/数组/元胞数组

来自维基教科书,开放的书籍,用于开放的世界

元胞数组简介

[编辑 | 编辑源代码]

元胞数组可以在每个元素中包含不同的信息。这些类型的数组在与电子表格软件交互时非常有用。

创建元胞数组

[编辑 | 编辑源代码]

元胞数组遵循与普通数组相同的约定,只是使用花括号而不是方括号。

 array = [1, 2, 3; 4, 5, 6];
 cell_array = {1, 2, 3; 4, 5, 6};

元胞数组比普通数组的限制更少。普通数组可以保存字符串;但是,每个元素中的字符串必须具有相同的长度。如果普通数组中的一个元素是字符串,那么所有元素都必须是字符串。元胞数组没有这些限制。

 cell_array = {1, 2, 'a', 'abc'; rand(3, 2), magic(3), eye(3), 'junk'}
   cell_array = 
     [         1]    [         2]    'a'             'abc' 
     [3x2 double]    [3x3 double]    [3x3 double]    'junk' 

元胞数组的内容限制更少,但也带来了复杂性。虽然元胞数组是一个强大的工具,但这些数组的工作方式不同,因为每个元素几乎可以是任何东西。

动态调整大小

[编辑 | 编辑源代码]

元胞数组可以动态调整大小,这是更高级数据结构中的一个关键特征。例如,使用以下命令的队列数据结构

 cell_array{end+1}='a';
 cell_array{end+1}='b';

可以使用以下命令从队列的前面弹出元素

 cell_array(1)=[]; % remove first element - resize
 cell_array(1)=[]; % remove first element - resize

GUI 表格

[编辑 | 编辑源代码]

在将表格显示到图形时,使用元胞数组。

 uitable('Data',{'hello',1;2,'there'})


转换为和从元胞数组转换

[编辑 | 编辑源代码]

从数值数组转换为元胞数组

[编辑 | 编辑源代码]

使用num2cell从数值数组转换为元胞数组。

 >> cell_array = num2cell(numeric_array);


从元胞数组转换为数值数组

[编辑 | 编辑源代码]

使用cell2mat从元胞数组转换为数值数组。

 >> numeric_array = cell2mat(numeric_cell_array);

外部链接

[编辑 | 编辑源代码]

ControlTheoryPro.com

华夏公益教科书