本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

元胞数组与结构体数组

此示例比较元胞和结构体数组,并说明如何在每种类型的数组中存储数据。使用元胞和结构体数组都可以存储不同类型和大小的数据。

结构体数组

结构体数组中数据包含在可按名称访问的字段中。

例如,将患者记录存储在一个结构体数组中。

patient(1).name = 'John Doe';
patient(1).billing = 127.00;
patient(1).test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205];

patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169];

patient
patient=2×3 struct
    name
    billing
    test

为每位患者的测试结果创建一个条形图。

numPatients = numel(patient);
for p = 1:numPatients
   figure
   bar(patient(p).test)
   title(patient(p).name)
   xlabel('Test')
   ylabel('Result')
end

元胞数组

元胞数组中数据包含在可按数值索引访问的元胞中。元胞数组的常见应用包括存储单独的文本段,以及存储电子表格中的异类数据。

例如,在一个元胞数组中存储一段时间中三个城市的温度数据。

temperature(1,:) = {'2009-12-31', [45, 49, 0]};
temperature(2,:) = {'2010-04-03', [54, 68, 21]};
temperature(3,:) = {'2010-06-20', [72, 85, 53]};
temperature(4,:) = {'2010-09-15', [63, 81, 56]};
temperature(5,:) = {'2010-12-09', [38, 54, 18]};

temperature
temperature=5×2 cell
    {'2009-12-31'}    {1x3 double}
    {'2010-04-03'}    {1x3 double}
    {'2010-06-20'}    {1x3 double}
    {'2010-09-15'}    {1x3 double}
    {'2010-12-09'}    {1x3 double}

按日期绘制每个城市的温度。

allTemps = cell2mat(temperature(:,2));
dates = datetime(temperature(:,1));

plot(dates,allTemps)
title('Temperature Trends for Different Locations')
xlabel('Date')
ylabel('Degrees (Fahrenheit)')

其他容器数组

结构体和元胞数组是存储异类数据的最常用容器。可以方便地使用表来存储异构的列向数据或表格数据。或者,使用映射容器或创建自己的类。

另请参阅

| | | | | |

相关示例

详细信息