Strona
Główna

Badania
Molekularne

Analiza
Statystyczna

Analiza
Informatyczna

Linki
Kontakt

Forum
Dyskusyjne



MATLAB (MATrix LABoratory)

          Program MATLAB to system służący do obliczeń naukowo-technicznych z możliwością graficznej prezentacji uzyskanych wyników. Obliczenia te odbywają się jedynie dzięki operacjom wyłącznie na macierzach. Oczywiście możliwe jest używanie wektorów i skalarów jednak są one w tym przypadku jedynie szczególnymi przypadkami macierzy. Posiadają bądź to jeden wiersz bądź jedną kolumnę i ewentualnie tylko jeden wiersz i jedną kolumnę. Jest to narzędzie, które z powodzeniem można stosować do obliczeń w genetyce wszędzie tam gdzie stosowane są układy z wieloma niewiadomymi. Takimi obliczeniami są, np. oszacowania wartości hodowlanej metodą BLUP. Poniżej przedstawimy kilka podstawowych funkcji programu MatLab, które to wystarczą w większości zastosowań obliczeniowych z interesujących nas dziedzin około genetycznych.
          Oprócz programu MatLab, polecam program SciLab, który jest darmowym programem. W warunkach "domowego" użytkowania w zupełności będzie on całkowicie wystarczający. Komendy przedstawione na przykładzie programu MatLab są identyczne w programie SciLab. Pakiet SciLab pod względem komend jest w około 99% podobny do MatLaba. Program ten można pobrać na własny komputer ze strony internetowej pod adresem http://scilabsoft.inria.fr/.


          Macierzą nazywamy prostokątną tablicę liczb uporządkowaną w m wierszach i n kolumnach. Taką właśnie macierz należy wprowadzić, czyli zdeklarować w programie MatLab by można było operować na jej wartościach. Przykładowa macierz zapisana została na dwa równoważne sobie sposoby. Wygenerowana przez program macierz w obu przypadkach jest taka sama. Niektórzy użytkownicy preferują drugi sposób zapisu gdyż łatwiej im wyobrazić sobie zamierzony efekt. Deklaracja macierzy to wszystkie symbole zawarte pomiędzy znakami < i > które to wyznaczają początek i koniec macierzy. Średnik służy oddzieleniu elementów z różnych wierszy.

          <>A=<1 2 3; 4 5 6; 7 8 9>

          <>A=<
          1 2 3;
          4 5 6;
          7 8 9>

          Macierze tworzyć można również przy pomocy odpowiednich funkcji.

          min:krok:max - funkcja taka wygeneruje macierz od najmniejszej określonej wartości min do największej wartości określonej jako max. Wielkość odstępu pomiędzy kolejnymi liczbami określona jest jako krok.



          <>A=<1:1:3;4:1:6;7:1:9>

          <>A=<
          1:1:3;
          4:1:6;
          7:1:9>

          Przy takim zapisie wygenerowana zostanie trójwierszowa macierz, w której wiersz pierwszy zawierać będzie kolejno liczby od 1 do 3, natomiast wiersz drugi od 4 do 6, z kolei wiersz trzeci to liczby od 7 do 9. W każdym z wierszy mamy krok równy 1.

          Działania na macierzach;
          Jeżeli chcemy zamienić wiersze na kolumny i odwrotnie, czyli dokonać transpozycji macierzy to korzystamy z odpowiedniej funkcji. Jeśli zamierzamy transponować macierz A i po transpozycji nowo powstała macierz ma być przypisana literze B to korzystamy z następującego zapisu. Znak ' oznacza transponowanie.

          <>b=a'

          Jeżeli mamy zamiar korzystać z funkcji dodawania i odejmowania macierzy to pamiętać musimy o tym, że macierze w tym samym działaniu muszą być tych samych wymiarów.

          <>a+b
          <>a-b


          Warto zwrócić tu uwagę na dwa sposoby zapisu. Jeśli postąpimy ja w przykładzie powyżej to uzyskamy wynik w postaci nieprzypisanej żadnej macierzy.

          ANS =

          Jeśli jednak zastosujemy zapis;

          <>c=a+b
          <>c=a-b


          To uzyskamy ten sam wynik jednak przypisany macierzy oznaczonej jako C.

          W przypadku mnożenia pamiętać należy o zasadzie, że liczba kolumn pierwszej macierzy musi się równać liczbie kolumn drugiej macierzy. Znów zastosować można różny zapis w zależności od tego czy wynik ma być nową macierzą czy tylko interesują nas uzyskane wartości.

          <>a*b
          <>d=a*b

          Możliwe jest również odwracanie macierzy w przypadku, gdy jest to wykonalne. Komenda służąca temu celowi to;

          <>inv(a)

          Wyznacznik macierzy uzyskujemy dzięki poleceniu

          <>det(a)

          W pewnych przypadkach zachodzi potrzeba tworzenie macierzy blokowych złożonych z kilku mniejszych macierzy. Macierze takie tworzy się w następujący sposób;

          <>BL=< a b; c d >

          Kończenie, czyli prawidłowe wyjście z program nie powinno odbywać się przez zamknięcie okna programy gdyż odszymamy na ekranie naszego monitora następujący komunikat;

          Prawidłowe zamkniecie programu następuje po wpisaniu komendy.

          <>exit