单元格数组简介(Cell Array Introduction)

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


创建单元格数组(Creating Cell Arrays)

单元格数组遵循与常规数组相同的规则,不同之处在于使用花括号 {} 而不是方括号 []

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' 

由于单元格数组内容的限制较少,因此使用时需要注意。虽然单元格数组是一个强大的工具,但由于每个元素几乎可以是任何类型的内容,它们的工作方式与常规数组不同。


动态调整大小(Dynamic Resizing)

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

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

可以使用以下命令从队列的前端删除一个元素:

cell_array(1) = []; % 移除第一个元素 - 调整大小
cell_array(1) = []; % 移除第一个元素 - 调整大小

用途(Uses)

GUI 表格(GUI Tables)

在显示表格到图形窗口时,使用单元格数组。

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

单元格数组的转换(Converting to and from Cell Arrays)

从数字数组转换为单元格数组(Converting From a Numeric Array into a Cell Array)

使用 num2cell 函数可以将数字数组转换为单元格数组:

>> cell_array = num2cell(numeric_array);

从单元格数组转换为数字数组(Converting From a Cell Array into a Numeric Array)

使用 cell2mat 函数可以将单元格数组转换为数字数组:

>> numeric_array = cell2mat(numeric_cell_array);

外部链接(External Links)

ControlTheoryPro.com


这就是 MATLAB 中单元格数组的基本介绍,包括如何创建、操作、动态调整大小以及如何进行转换等。


最后修改: 2025年04月15日 星期二 11:10