Jest to równoznaczne z użyciem listy oddzielanej przecinkami total = sum ( [patient (1) .billing, patient (2) .billing. . . ] ) ; Ta składnia jest najbardziej użyteczna w przypadkach. gd\ pole. na którym operujemy, jest polem skalarnym.
7.2.4. Funkcje wykorzystujące struktury
Użytkownik może tworzyć funkcje wykorzystujące struktury o specyficznej architekturze pól. Takie funkcje mogą mieć dostęp do pól struktury i ich elementów w celu ich przetwarzania. Podczas pisania M-plików - funkcji mających działać na strukturach, należy' zadbać o mechanizm wykrywający błędy. Oznacza to, że program powinien sprawdzać pewne pola.
Jako przykład rozważany jest zbiór danych opisujących kolejne pomiary zawartości poziomu różnych toksyn w wodzie, wykonywane w różnych momentach. Dane składają się z piętnastu różnych obserwacji, gdzie każda obserwacja zawiera trzy oddzielne pomiary. Dane te można zorganizować w macierz złożoną z 15 struktur, gdzie każda struktura posiada trzy pola, jedno dla każdego z trzech wykonanych pomiarów.
Funkcja concen, pokazana poniżej, operuje na macierzy struktury o określonej charakterystyce. Jej argumenty muszą zawierać pola lead, mercury oraz chromium.
function [rl, r2] = concen(toxtest);
% Tworzy dwa wektory dla każdej obserwacji.
% rl zawiera stosunek zawartości rtęci do ołowiu.
% r2 zawiera stosunek zawartości ołowiu do chromu, rl = [toxtest.Hg]./[toxtest.Pb]; r2 = [toxtest.Pb]./[toxtest.Cr] ;
% Rysuje rozkład stężenia ołowiu, rtęci i chromu
% na jednym rysunku, każdy innym kolorem.
lead = [toxtest.Pb];
mercury = [toxtest.Hg];
chromium = [toxtest.Cr];
plot(lead, 'r'); hołd on
plot(mercury, 'b') ;
plot(chromium, 'y'); hołd off
Możemy wypróbować działanie tej funkcji dla próbnej struktury takiej jak test: test(1) .Pb = .007; test(2) .Pb= .031; test(3) . Pb = .019; test(1) .Hg = .0021; test(2) .Hg= . 0009; test (3 ) . Hg = .0013; test(1) . Cr =.025; test(2).Cr =.017; test(3). Cr = .10;
93