MATLAB – KURS PODSTAWOWY #2 – TIPS&TRICKS [FILM]

Druga część tutoriala do MATLABa dotyczy skryptów i funkcji. Może się wydawać, że temat jest błahy jednak omawiam w nim rzadko poruszane wątki, które znacząco ułatwią Wam programowanie i pisanie własnych funkcji. Czas na MATLABowe Tips&Tricks.

Tematyka bieżącego wpisu jest podzielona na pięć kategorii: system pomocy, tworzenie wektorów i macierzy, odwoływanie do elementów, wyrażenia warunkowe oraz skrypty - dobre praktyki. Rady i „sztuczki” opisane poniżej pozwolą na sprawne, szybkie i czytelne pisanie programów, które staną się zrozumiałe nie tylko dla autora. Jest to szczególnie przydatne przy bardziej rozbudowanych projektach i kooperacji z innymi członkami zespołu. Zacznijmy jednak od systemu pomocy, czyli jak ułatwić sobie życie.

System pomocy

O tym jak używać pełnego systemu pomocy była mowa w pierwszej części. Teraz kilka rad, które znacznie przyspieszą i ułatwią pisanie programów w MATLABie.

  • Autouzupełnianie – w command window albo edytorze wystarczy wpisać pierwsze litery funkcji, a po naciśnięciu klawisza TAB, MATLAB albo uzupełni nazwę do końca, albo, jeżeli więcej funkcji zaczyna się od wprowadzonych liter, wyświetli listę sugerowanych funkcji.
  • Pomoc kontekstowa #1 – jeżeli znamy nazwę funkcji ale nie pamiętamy jak jej użyć, to nie musimy przechodzić do systemu pomocy MATLABA aby to sprawdzić. Wystarczy, po wpisaniu nazwy funkcji nacisnąć klawisz F1, a wyświetli się treść opisu w okienku kontekstowym. Jest to szybki sposób sprawdzenia składni.
  • Pomoc kontekstowa #2 – jeżeli nie znamy nazwy funkcji, a nie chcemy przechodzić do pełnej dokumentacji by ją wyszukać, można użyć function browser. Będąc w command window lub edytorze wystarczy nacisnąć skrót klawiaturowy Shift+F1, a otworzy się kontekstowe okno z listą wszystkich funkcji MATLABa. Teraz wystarczy zawęzić listę przez wyszukanie interesującego pojęcia.
Tworzenie wektorów i macierzy

Wektor wierszowy - tworzymy wpisując liczby po sobie, ewentualnie rozdzielając je przecinkiem:

X = [1 3 1 0.5 2]; % równoważne X = [1, 3, 1, 0.5, 2];

Wektor kolumnowy - tworzymy oddzielając liczby średnikiem:

Y = [23; 6; 10; 43];

Wektor wierszowy można zmienić w wektor kolumnowy (i odwrotnie) za pomocą operatora transpozycji:

Y = Y’;

Operator dwukropka - zamienia wektor wierszowy lub macierz w wektor kolumnowy, ale odwrotna operacja za pomocą tego operatora nie jest możliwa.

Y = Y(:); % macierz lub wektor wierszowy w wektor kolumnowy

Operator dwukropka może również służyć do tworzenia wektorów i macierzy, odwoływania się do określonych (lub wszystkich) elementów wektorów i macierzy lub indeksowania pętli. W każdym przypadku użycie tego operatora jest podobne i oznacza zakres zmienności wartości:

(3 : 2 : 11) % oznacza liczby: 3 5 7 9 11
Odwoływanie do elementów

Odwoływanie do elementów macierzy – poza tradycyjnym indeksowaniem, można użyć operatora end i dwukropka. End zawsze wskazuje na ostatni element macierzy w danym wymiarze. Natomiast operat dwukropka użyty do indeksowania powoduje wybór wszystkich elementów z danego wymiaru macierzy. Na przykład:

Z = [1 2 3 4 5
6 7 8 9 10];
Z(:, 2:end)
ans =

2 3 4 5
7 8 9 10

Oznacza, że wybieramy wszystkie wiersze (operator : na pierwszej pozycji) i kolumny od 2 do ostatniej (użycie operatora end).

Wyrażenia warunkowe

W klasycznym podejściu do sprawdzania warunków różnego rodzaju używamy struktury if… else, często w połączeniu z pętlami for… end. MATLAB umożliwia znaczne uproszczenie takich obliczeń. Rozważmy przykład wyboru liczb większych od zera z danego wektora. W klasycznym podejściu wymagałoby to takiego programu:

N = 20;
x = randn(1,N);

indx = [];
for k = 1:N
  if x(k) > 0
   indx = [indx k];
  end
end
x01 = x(indx)

** UWAGA: powyższy kod może być niepoprawnie wyświetlany w przeglądarce. Zamiast symbolu > należy wstawić znak większości >.

Jednak w MATLABie, warunek, możemy sformułować w postaci argumentu wektora:

x02 = x(x > 0)

** UWAGA: powyższy kod może być niepoprawnie wyświetlany w przeglądarce. Zamiast symbolu > należy wstawić znak większości >.

Efekt obydwu programów jest identyczny, przy czym ten drugi jest dużo krótszy i bardziej czytelny.

Skrypty - dobre praktyki

Podstawowa zasada jest prosta: piszemy programy w taki sposób aby inny programista mógł je zrozumieć. Aby tak było warto stosować kilka prostych zasad:

  • Każdy skrypt zaczynamy od umieszczenie nagłówka w postaci komentarza. Nagłówek powinien co najmniej zawierać nazwę programu, jego wersję, autora, datę modyfikacji i opis.
  • W programie obficie stosujemy komentarze, opisując zarówno zawartość zmiennych jak również wykonywane operacje. W MATLABIE komentarz zaczyna się od znaku %.
  • Zmiennym nadajemy nazwy opisowe, np.: poziom_paliwa, a nie symboliczne np. h.
  • Stosujemy dodatkowe funkcje MATLABowskiego edytora, czyli insert text markup. Najcześciej stosujemy podział programu na sekcje przez wprowadzenie podwójnego znaku komentarza %%.

Więcej na ten temat, oraz inne porady znajdziecie w drugiej części  filmu:

(Visited 724 times, 2 visits today)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *