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
在将表格显示到图形时,使用元胞数组。
uitable('Data',{'hello',1;2,'there'})
使用num2cell从数值数组转换为元胞数组。
>> cell_array = num2cell(numeric_array);
使用cell2mat从元胞数组转换为数值数组。
>> numeric_array = cell2mat(numeric_cell_array);