Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 169 стр.

UptoLike

Составители: 

167
Таким образом, одно из значений поля patient.billing оказывается не-
присвоенным и поэтому результат total оказывается пустым.
Использование квадратных скобок для полей:
total = sum ([patient.billing])
total = 155.5000
Если одному или нескольким полям значения не были присвоены, то
результат приведенного выше цикла будет пустым, в то время как
применение функции sum даст сумму значащих полей
.
Суммирование значений некоторого поля эквивалентно опе-
ратору
total = sum([patient(1).billing, patient(2).billing...]);
Написание функций для работы со структурами. Для об-
работки структур со специфической архитектурой полей могут пона-
добиться специальные функции обработки полей и их элементов. При
написании М-файлов для обработки структур необходимо помнить,
что пользователь должен сам выполнить анализ возникновения воз
-
можных ошибок, связанных с обработкой полей.
Пример. Рассмотрим набор данных, связанных с замером в
разные моменты времени токсинов в воде. Данные состоят из 15 от-
дельных наблюдений, где каждое наблюдение содержит три измере-
ния. Можно объединить эти данные в массив из 15 записей, каждая из
которых имеет 3 поля, по одному на каждое
измерение. Приведенная
ниже функция concen оперирует со специфическими харктеристиками
структуры, содержащей поля lead, mercury и chromium, которым
соответствуют концентрации свинца, ртути и хрома.
function [r1,r2] = concen(toxtest);
k = length(toxtest);
% Вычислить 2 вектора:
% r1 - отношение концентраций ртути к свинцу
% r2 - отношение концентраций свинцу к хрому.
for i = 1:k
r1 = [toxtest.mercury]./[toxtest.lead];
r2 = [toxtest.lead]./[toxtest.chromium];
end
% Графики концентраций свинца, ртути и хрома
for j = 1:k
lead = [toxtest.lead];
mercury = [toxtest.mercury];
chromium = [toxtest.chromium];
end
Таким образом, одно из значений поля patient.billing оказывается не-
присвоенным и поэтому результат total оказывается пустым.

         Использование квадратных скобок для полей:
            total = sum ([patient.billing])
             total = 155.5000
Если одному или нескольким полям значения не были присвоены, то
результат приведенного выше цикла будет пустым, в то время как
применение функции sum даст сумму значащих полей.
        Суммирование значений некоторого поля эквивалентно опе-
ратору
      total = sum([patient(1).billing, patient(2).billing...]);

        Написание функций для работы со структурами. Для об-
работки структур со специфической архитектурой полей могут пона-
добиться специальные функции обработки полей и их элементов. При
написании М-файлов для обработки структур необходимо помнить,
что пользователь должен сам выполнить анализ возникновения воз-
можных ошибок, связанных с обработкой полей.
        Пример. Рассмотрим набор данных, связанных с замером в
разные моменты времени токсинов в воде. Данные состоят из 15 от-
дельных наблюдений, где каждое наблюдение содержит три измере-
ния. Можно объединить эти данные в массив из 15 записей, каждая из
которых имеет 3 поля, по одному на каждое измерение. Приведенная
ниже функция concen оперирует со специфическими харктеристиками
структуры, содержащей поля lead, mercury и chromium, которым
соответствуют концентрации свинца, ртути и хрома.

        function [r1,r2] = concen(toxtest);
         k = length(toxtest);
         % Вычислить 2 вектора:
         % r1 - отношение концентраций ртути к свинцу
         % r2 - отношение концентраций свинцу к хрому.
         for i = 1:k
            r1 = [toxtest.mercury]./[toxtest.lead];
            r2 = [toxtest.lead]./[toxtest.chromium];
         end
         % Графики концентраций свинца, ртути и хрома
         for j = 1:k
            lead = [toxtest.lead];
            mercury = [toxtest.mercury];
            chromium = [toxtest.chromium];
         end
                                                                 167