Камер и массивов структур

В этом примере сравниваются камеры и массивы структур, и показано, как хранить данные в каждом типе массива. Как камера, так и массивы структур позволяют хранить данные разных типов и размеров.

Массивы структур

Массивы структур содержат данные в полях, к которым вы получаете доступ по имени.

Например, храните записи о пациенте в массиве структур.

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=1×2 struct array with fields:
    name
    billing
    test

Создайте штриховой график результатов теста для каждого пациента.

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

Figure contains an axes. The axes with title John Doe contains 3 objects of type bar.

Figure contains an axes. The axes with title Ann Lane contains 3 objects of type bar.

Массивы ячеек

Массивы ячеек содержат данные в камерах, к которым вы получаете доступ с помощью числового индексирования. Общие приложения массивов ячеек включают в себя хранение отдельных фрагментов текста и хранение гетерогенных данных из электронных таблиц.

Например, сохраните данные о температуре для трех городов с течением времени в массиве ячеек.

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 array
    {'2009-12-31'}    {[ 45 49 0]}
    {'2010-04-03'}    {[54 68 21]}
    {'2010-06-20'}    {[72 85 53]}
    {'2010-09-15'}    {[63 81 56]}
    {'2010-12-09'}    {[38 54 18]}

Постройте график температуры для каждого города по дате.

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

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

Figure contains an axes. The axes with title Temperature Trends for Different Locations contains 3 objects of type line.

Другие массивы контейнеров

Struct и массивы ячеек являются наиболее часто используемыми контейнерами для хранения гетерогенных данных. Таблицы удобны для хранения гетерогенных ориентированных на столбцы или табличных данных. Кроме того, используйте контейнеры map или создайте свой собственный класс.

См. также

| | | | | |

Похожие примеры

Подробнее о