Данная функция создает два вектора. r1 содержит отношение ртути к свинцу в каждом наб-людении, а r2 содержит отношение свинца к хрому. Далее эта функция строит кривые кон-центрации свинца, ртути и хрома на одном графике, используя разные цвета (красный – сви-нец, синий – ртуть, желтый – хром).
Попробуйте применить данную функцию на примеры структуры test со следующими данны-ми
test(1).lead = .007; test(2).lead = .031; test(3).lead = .019;
test(1).mercury = .0021; test(2).mercury = .0009;
test(3).mercury = .0013;
test(1).chromium = .025; test(2).chromium = .017;
test(3).chromium = .10;
Организация данных в массиве структур
Ключ к организации массива структур состоит в выборе способа, которым вы хотите обра-щаться к подмассивам данных или отдельным данным структуры. Это, в свою очередь, оп-ределяет как вы дольжны построить массив, содержащий структуры и как выбирать поля структуры. Например, рассмотрим RGB изображение размера 128х128, запомненное в трех различных массивах : RED, GREEN и BLUE.
Имеются по меньшей мере две возможности для организации таких данных в массив струк-
тур.
Плоская организация Поэлементная организация
Плоская организация
В этом варианте, каждое поле структуры представляет полную плоскость изображения в красном, зеленом или синем цветах. Вы можете создать такую структуру используя запись
A. r = RED;
A. g = GREEN;
A. b = BLUE;
Подобный подход позволяет вам легко извлекать полное изображение в отдельных состав-ляющих цветов, для решения таких задач как фильтрация. Например, для обращения ко всей красной плоскости нужно просто записать
red_ plane = A. r;
Плоская организация имеет то дополнительное преимущество, что массив структур можно без труда дополнить другими изображениями. Если у вас есть набор изображений, вы може-те запомнить их как A(2), A(3), и так далее, где каждая структура содержит полное изобра-жение.
Недостаток плоской организации становится очевичным, когда вам нужно обратиться к от-дельным частям изображения. В этом случае вы должны оперировать с каждым полем в от-дельности:
red_sub = A.r (2:12, 13:30);
grn_sub = A.g (2:12, 13:30);
blue_ sub = A. b (2:12, 13:30);
Поэлементная организация
Данный вариант имеет то преимущество, что обеспечивает простой доступ к подмножествам данных. Для организации данных в данной форме нужно использовать команды
for i = 1: size( RED,1)
for j = 1:size(RED,2)
B(i,j) .r = RED(i,j);
B(i,j) .g = GREEN(i,j);
B(i,j) .b = BLUE(i,j);
end
end
При поэлементной организации, вы можете осуществить обращение к подмножествам дан-ных при помощи единственного выражения:
Bsub = B(1:10, 1:10);
Однако, обращение к полной плоскости изображения при поэлементом методе требуется цикл :
red_plane = zeros(128,128);
for i = 1 : (128 * 128)
red_plane(i) = B(i).r;
end
Поэлементая организация не является лучшим выбором для большинства приложений, свя-занных с обработкой изображений. Однако, она может быть лучшей для других приложений, когда вам требуется часто обращаться к отдельным подмножествам полей структуры. Пример в следующем разделе демонстрирует данный тип приложен
Пример - Простая база данных
Рассмотрим организацию простой базы данных.
А Плоская организация В Поэлементная организация
Оба возможных способов организации базы данных имеет определенные проимущества, зависящие от того как вы хотите осуществить доступ к данным:
· Плоская организация обеспечивает более легкую возможность вычислений одновре-менно над всеми полями. Например, чтобы найти среднее значение всех данных в поле amount следует записать:
а) При плоской организации
avg = mean( A. amount);
б) При поэлементной организации
avg = mean([ B. amount]);
Поэлементная организация дает более легкий доступ ко всей информации, связанной с одним клиентом. Рассмотрим М-файл, названный client. m, который осуществляет вывод на экран имени и адреса любого клиента. При использовании плоской организации, следует вводить в качестве аргументов индивидуальные поля:
Дата: 2019-05-28, просмотров: 246.