В этом примере сравниваются камеры и массивы структур, и показано, как хранить данные в каждом типе массива. Как камера, так и массивы структур позволяют хранить данные разных типов и размеров.
Массивы структур содержат данные в полях, к которым вы получаете доступ по имени.
Например, храните записи о пациенте в массиве структур.
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
Массивы ячеек содержат данные в камерах, к которым вы получаете доступ с помощью числового индексирования. Общие приложения массивов ячеек включают в себя хранение отдельных фрагментов текста и хранение гетерогенных данных из электронных таблиц.
Например, сохраните данные о температуре для трех городов с течением времени в массиве ячеек.
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)')
Struct и массивы ячеек являются наиболее часто используемыми контейнерами для хранения гетерогенных данных. Таблицы удобны для хранения гетерогенных ориентированных на столбцы или табличных данных. Кроме того, используйте контейнеры map или создайте свой собственный класс.
cell
| cell2mat
| containers.Map
| datetime
| plot
| struct
| table