MATLAB – KURS PODSTAWOWY #2 – OPERACJE ARYTMETYCZNE

MATLAB oferuje użytkownikowi szereg operatorów realizujących operacje arytmetyczne zgodnie z algebrą macierzy. W tej części kursu przyglądniemy się jak poprawnie i świadomie używać operatorów arytmetycznych i jak efektywnie realizować działania matematyczne, które w innych językach programowania wymagałyby konstrukcji z pętlą.

Operacje arytmetyczne w MATLABie można podzielić na skalarne (tablicowe) i macierzowe. Operatory skalarne są  poprzedzone kropką  i realizują  operacje  arytmetyczne dla odpowiadających sobie elementów macierzy z osobna. Do podstawowych operatorów skalarnych należy zaliczyć  operator mnożenia ‘.*’, dzielenia ‘./’ i potęgowania ‘.^’. Operatorów dodawania i odejmowania nie trzeba poprzedzać kropką, ponieważ  z definicji są one operatorami tablicowymi. Zobaczmy jak można zrealizować iloczyn skalarny wektorów na przykładzie.

x = 0:0.1:1; x = x(:);
y = 1:0.1:2; y = y(:);
% mnożenie w pętli (już wiemy jak bardzo jest to nieefektywne – patrz wpis o efektywności obliczeń)
il_sk1 = 0;
for k = 1:length(x)
    il_sk1 = il_sk1 + x(k) * y(k);
end
 
% z wykorzystaniem operatora mnożenia skalarnego i funkcji sumowania
% elementów (nieeleganckie)
il_sk2 = sum(x.*y);
 
% z wykorzystaniem macierzowego operatora mnożenia
il_sk3 = x'*y;

Operatory macierzowe mnożenia, dzielenia i potęgowania zapisujemy bez kropki. Mnożenie macierzy w sensie Cauchy’ego jest wykonywane za pomocą  operatora ‘*’. Realizuje on również mnożenie macierzy przez skalar, które polega na pomnożeniu każdego elementu macierzy przez daną liczbę. Na podobnej zasadzie działają operatory dodawania i odejmowania. Dzielenie lewostronne macierzy to operator ‘\’, a prawostronne ‘/’. Zobaczmy działanie operatorów na przykładach.

%% Mnożenie macierzy w sensie Cauchy'ego 
 
A = [0 1; 2 3; 6 5; 1 2]
B = [1 1 2; 0 3 10]
    
C = A * B
 
% Macierz możemy pomnożyć przez liczbę
 
D = A * 10

Oprócz operatorów macierzowych i tablicowych, MATLAB zawiera szereg funkcji tablicowych, a więc takich, które realizują działania na poszczególnych elementach macierzy. Przykładem może być funkcja sinus:

X = [0 pi/2 pi pi*3/2 2*pi; 2*pi pi*3/2 pi pi/2 0]
sin(X)

W efekcie działania funkcji sin, zostaną obliczone wartości funkcji sinus, dla każdego elementu wektora X z osobna. Na podobnej zasadzie działają inne funkcje trygonometryczne (sin, cos, tan, asin, acos, atan, ...), funkcje logarytmiczne, wykładnicze i potęgowe (sqrt, exp, log, log10, ...), funkcje przeznaczone do obliczeń liczb zespolonych (abs, angle, real, imag, conj, ...) i w końcu funkcje zaokrągleń (ceil, floor, round, ...). To oczywiście nie wszystkie funkcje działające w ten sposób. Więcej przykładów ilustrujących użycie operatorów arytmetycznych znajdziecie na filmie. Następny odcinek kursu będzie poświęcony typom danych w MATLABie.

(Visited 95 times, 1 visits today)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *