Strona główna » Poradniki » MATLAB » Zmienne i wektory
 

Zmienne i wektory

Język skryptowy

Przed przystąpieniem do dalszej części chciałbym wspomnieć o tym, że MATLAB posiada własny język skryptowy. Innymi słowy jakiekolwiek polecenie wpisane do programu jest interpretowane. Wyniki prac będzie można zapisać, ale nie otworzymy ich w żadnym innym programie. Każdy język ma swoją składnię i przechowują dane w zmiennych.

Zmienne

Zmienną możemy traktować jako kontener w którym możemy przechowywać dane różnego rodzaje. Począwszy od pojedynczej liczby, poprzez listę po całe tablice danych. W programie MATLAB wszystkie dane są przechowywane jako tablice, które są odpowiednikiem macierzy. Deklarowanie zmiennych jest bardzo proste i intuicyjne. Stworzymy teraz zmienną a i przypiszemy jej wartość 10:

  1. >> a = 10

  2. a =

        10

Od tego momentu możemy używać a w dowolnym równaniu. Przypuśćmy, że a to jakaś stała o pewnym zastosowaniu. Wtedy możemy używać jej następująco:

  1. >> 3 / a

  2. ans =

        0.3000

Zwróćmy teraz uwagę na interpretację programu dotychczas wpisanych poleceń. Polecenie a = 10 przypisało zmiennej a wartość. Za to w drugim przypadku użycie zmiennej a nie zmieniło jej wartości - wynik został zapisany do zmiennej ans (skrót, ang. answer). Zmienna ans jest zmienną w której przechowywany jest wynik ostatniego wpisanego wyrażenia. W przypadku gdybyśmy chcieli, aby wynik został zapisany do zmiennej a to wpiszemy tak:

  1. >> a = 3 / a

  2. a =

        0.3000

Jednak należy pamiętać, że począwszy od tego momentu zmienna a ma wartość 0.3. Wszystkie aktualne wartości zmiennych można sprawdzić na bieżąco w obszarze Workspace znajdujący się po prawej stronie od linii poleceń:

Obszar Workspace

Znajdują się tam dwie kolumny Name oraz Value. Pierwsza zawiera nazwy zmiennych, a w drugiej kolumnie znajdują się wartości zmiennych. Dzięki temu można na bieżąco sprawdzać wartości zmiennych. Istnieje możliwość edycji wartości i nazw zmiennych. W tym celu należy wybrać zmienną i przycisnąć prawy przycisk myszy. Z menu kontekstowego interesujące polecenia to: Rename - umożliwia zmianę nazwy zmiennej oraz Edit value - umożliwia edycję wartości zmiennych.

Jednak jeśli nie chcemy sprawdzać jakie zmienne obecnie mamy zadeklarowane lub takiego okna nie mamy otwartego to możemy wpisać polecenie who. Wtedy na ekran zostaną wypisane wszystkie nazwy zadeklarowanych zmiennych. W przypadku obecnego projektu funkcja zadziała następująco:

  1. >> who

  2. Your variables are:

    a     ans

Z kolei, żeby sprawdzić wartość zmiennej wystarczy wpisać jej nazwę i zatwierdzić polecenie:

  1. >> ans

  2. ans =

        0.3000

Liczby zespolone

W zmiennych możemy przechowywać nie tylko liczby rzeczywiste, ale również zespolone. Na takich zmiennych możemy wykonywać wszystkie prawidłowe operacje matematyczne. Podczas wpisywania, obydwie części - rzeczywistą i zespoloną wpisujemy w naturalny sposób:

  1. >> z = 2 + i

  2. z =

        2.0000 + 1.0000i

Wektory

Deklarowanie wektorów w środowisku MATLAB polega na wpisaniu wartości w nawiasy kwadratowych. Poszczególne dane możemy, ale nie musimy oddzielać przecinkami. Jednak wstawianie przecinków pomiędzy dwie kolejne wartości ma znaczącą zaletę - mamy pewność, że w przypadku wpisywania wyrażeń program nie pogrupuje ich błędnie. Podsumowując wektory można utworzyć prawidłowo na dwa sposoby przedstawione poniżej:

  1. >> v = [1, 2, 3]

  2. v =

        1     2     3
  3. >> w = [4 5 6]

  4. v =

        4     5     6

Wektory kolumnowe wymaga użycia średnika pomiędzy kolejnymi wartościami:

  1. >> u = [1; 2; 3]

  2. v =

        1
        2
        3

Pomiędzy postacią wektora wierszowego i kolumnowego możemy przejść poprzez transpozycję. W MATLABie transpozycję zapisuje się przy pomocy apostrofu ':

  1. >> w'

  2. ans =

        4
        5
        6

Przy użyciu transpozycji istnieje możliwość tworzenia wektorów kolumnowych bez użycia średników. Wystarczy za prawym nawiasem kwadratowym dopisać apostrof, aby dane zapisane w postaci wierszowej zostały zapisane do zmiennej jako kolumnowe:

  1. >> u = [1 2 3]'

  2. v =

        1
        2
        3

Dane opisane wzorem

W przypadku języków programowanie do tworzenia serii danych określonych wzorem używa się pętli for. Jednak w MATLAB twórcy znacząco uprościli ten zapis. Jeśli chcemy wygenerować serie danych od 1 do 5 wystarczy wpisać:

  1. >> 1:5

  2. ans =

        1     2     3     4     5

Polecenie a:b można czytać następująco: wypisz wszystkie liczby całkowite z zakresu od a do b. Istnieje również możliwość, aby funkcja wypisywała co drugą wartość w podanym zakresie. W tym celu należy dodać dodatkową liczbę "pośrodku" dotychczasowego zapisu: od:co_ile:do. Załóżmy, że chcemy teraz wypisać tylko liczby nieparzyste z poprzedniego przykładu. Wtedy wpiszemy:

  1. >> 1:2:5

  2. ans =

        1     3     5

Na koniec warto po sobie posprzątać przy pomocy funkcji clear - spowoduje to skasowanie wszystkich zmiennych i przywróci stan konsoli do pierwotnego. Jeśli jednak chcemy wyczyścić tylko wybraną zmienną to wystarczy po poleceniu clear wpisać nazwę tej zmiennej. Program możemy opuścić przy pomocy polecenia exit. Jednak zalecam wpierw wykonać poniższe ćwiczenia:

Zadania

Zadanie 1

Wykonaj poniższe polecenia.

Zalecane jest wykonanie poleceń bez zaglądania do artykułu. Wskazówka: Każdy podpunkt odpowiada dokładnie jednemu poleceniu!

  1. Zadeklaruj zmienną liczba i przypisz jej wartość 5
  2. Zadeklaruj zmienną liczba2 i przypisz jej wartość 10
  3. Podziel liczba przez liczba2
  4. Wynik przechowaj w zmiennej const
  5. Wygeneruj listę z zakresu od 11 do 100 liczb podzielnych przez 6 i przechowaj w zmiennej lista
  6. Pomnóż utworzoną listę przez zmienną const
  7. Wykonaj transpozycję wyniku

Zadanie 2

Sprawdź aktualne wartości zmiennych w obszarze Workspace.