MATLAB Tutorial #1

Początki pracy w MATLABie

Jak zacząć pracę w MATLABie? W pierwszej kolejności warto sobie odpowiedzieć na pytanie: Co to w ogóle jest MATLAB? Większość ludzi, niemających wcześniej z tym tworem do czynienia, odbiera program jako środowisko programistyczne. No cóż, trzeba przyznać, że MATLAB to jest również środowisko programistyczne, jednak jeśli ktoś siada do niego ze świeżą, niezmąconą uprzedzeniami głową, to warto jest podejść do MATLABa, jak do programu do analizy danych. Dobrze jest przyjąć,  że MATLAB to narzędzie, czy nawet zbiór narzędzi pozwalających przeanalizować dane, którymi dysponujemy. Mechanizmy, którymi dysponuje MATLAB można wykorzystać najefektywniej, jeśli stosujemy techniki programistyczne, jednak wcale nie musimy być programistami, żeby rozpocząć pracę. Mam nadzieję, że poniższy wpis (i następujące po nim kolejne wpisy) będą w stanie to wykazać.

Zamierzałem w tym miejscu napisać, że pierwszą rzeczą, której potrzebujemy rozpoczynając pracę w MATLABie są dane. Przyszła jednak refleksja, że pierwszą rzeczą, której naprawdę potrzebujemy jest czytelny obraz. Tak się składa, że osoby opowiedziane za interfejs MATLABa mają przesadnie dobre wyobrażenie o sprawności oczu użytkowników. Jeśli nie masz sokolego wzroku lub masz i chciałbyś się nim cieszyć pomimo pracy w MATLABie, to po pierwszym uruchomieniu środowiska przejdź do Preferences, gdzie w sekcji Fonts możesz zmienić rozmiar czcionki na jakiś sensowny.

zmiana czcionki

Drugą niezbędną rzeczą jest zapewnienie sensownego rozkładu okien w środowisku. Domyślne ustawienia są jak najbardziej w porządku, problem polega na tym, że te domyślne ustawienia można łatwo zmienić. Poszczególne okna można przenosić, minimalizować, rozciągać, dokować itd. Zabawa jest przednia, jednak po kilku minutach okazuje się, że jednak ten początkowy układ był najlepszy. Wtedy warto kliknąć na przycisk Layout i wybrać opcje Default.

Teraz można przejść do pracy. Jak już wspomniałem, potrzebne będą dane. Dane można pozyskać z różnych źródeł, mogą to być bazy danych, sprzęt pomiarowy, pliki audio – tym zajmiemy się innym razem. Rozpoczniemy od uniwersalnego źródła. Na początku zajmiemy się wczytywaniem danych z pliku najpopularniejszego arkusza kalkulacyjnego na świecie, jakim jest Microsoft Excel. Dane, które będziemy analizować dotyczą budownictwa mieszkaniowego w Polsce na przestrzeni lat 1991 – 2015 i można je pobrać ze strony Głównego Urzędu Statystycznego lub tutaj.

Plik należy zapisać do roboczego folderu MATLAB, domyślnie w systemie operacyjnym Windows 10 jest to C:\Users\nazwa\Documents\MATLAB. Jeśli plik został zapisany w innym folderze, można go po prostu „przeciągnąć” do wbudowanego w program okna przeglądarki plików. W każdym razie w oknie Current Folder MATLABa powinien być widoczny plik mieszkania_91_15.xls

Podstawowe operacje z interfejsem MATLABa

Na tym etapie MATLAB „widzi” plik, ale nie ma jeszcze dostępu do danych znajdujących się wewnątrz. Jeśli chcesz szybko podglądnąć, co znajduje się w pliku wykorzystując do tego jego natywne środowisko (w tym przypadku MS Excell), kliknij na pliku prawym przyciskiem myszy (PPM) i wybierz opcję Open Outside MATLAB.

W celu importu danych najłatwiej będzie nam skorzystać z wbudowanego w środowisko narzędzia Import Wizard. W tym celu

  • w oknie Current Folder MATLAB’a wykonaj na pobranym pliku podwójne kliknięcie lewym przyciskiem myszy (LPM), ewentualnie kliknij PPM i wybierz opcję Import Data.

Otworzy się okno Import Wizard, w którym wyróżniona została ta część danych, jaka zostanie zaimportowana. Tekst będzie przy imporcie pominięty lub zastąpiony symbolem NaN (not a number). Oczywiście zakres i sposób importu można zmienić. W naszym przypadku, nie będzie potrzebna pierwsza kolumna danych (nie zawiera danych numerycznych), dlatego:

  • w oknie Range zamień A3 na B3,
  • zmień również domyślnie zaznaczony Comumn vector na Matrix.

Teraz kliknij na przycisko03_ptaszek nad menu Import Selection, a następnie zamknij okno Import Wizard.

Import

Dane zostały skopiowane do przestrzeni roboczej MATLAB, co widać po obecności nowego symbolu macierzy, który pojawił się w okienku Workspace. Zaimportowane dane to macierz o rozmiarach 150 x 12 (150 wierszy, 12 kolumn), zmienna typu double. (Ilość wierszy w Twoim wypadku może być większa, w każdym razie w 2015 roku było ich 150). Jeśli w oknie Worskspace nie widzisz typu i rozmiaru zmiennej, kliknij prawym przyciskiem myszy na ‘belce’ (tej na której znajduje się na pewno przynajmniej kolumna Name) i wybierz (Choose Columns) ‘Value’ oraz ‘Size’. Możesz zaznaczyć inne pola, jeśli uważasz, że mogą być przydatne.

Popraw teraz domyślną nazwę, jaka została nadana zmiennej.

  • Kliknij na zmiennej PPM i wybierz opcje rename. Nową nazwą niech będzie BMdane.
  • Wykonaj na BMdane podwójne kliknięcie LPM.

Zmienna otworzyła się do edycji w oknie, które przypomina arkusz kalkulacyjny. Można tu dodawać, usuwać i edytować poszczególne pola. Można też wyświetlać zaznaczone dane oraz tworzyć na podstawie zaznaczenia nowe zmienne.

  • Zaznacz cały wiersz nr 2, w menu zmień zakładkę na ‘PLOTS’ i kliknij przycisk plot.
  • Na zaznaczonym wcześniej wierszu klinki PPM i wybierz opcję New Variable from Selection -> New Numeric Array.

o04_plot

Pierwsza operacja stworzyła nam wykres, na którym możemy obserwować, jak w kolejnych miesiącach roku 1991 wzrastała liczba wszystkich oddanych do użytku mieszkań. Druga operacja zapisała nam zaznaczony fragment jako osobną zmienną w przestrzeni roboczej (Workspace), gdyż przyda ona nam się do dalszej analizy. Pozostaje tylko zmienić nazwę z nic niemówiącego BMdane1 na tekst, który będzie nas informować, co zawiera ta zmienna.

  • Kliknij na zmiennej BMdane1 PPM i wybierz opcje rename. Nową nazwą niech będzie ogolem1991.
  • Jeśli nie wiesz dlaczego tak, a nie inaczej nazywamy zmienną, w przeglądarce plików kliknij prawym przyciskiem myszy na pliku mieszkania_*.xls i wybierz ‘Open outside MATLAB’. Przy okazji zwróć uwagę na sposób zebrania danych. W kolejnych kolumnach arkusza znajdują się dane kumulacyjne  (tzn. ilość oddanych do użytku mieszkań od stycznia do określonego miesiąca łącznie).

Jeszcze pewna uwaga – przy tworzeniu nazw zmiennych (funkcji, klas itp.) nie możemy używać polskich znaków.

Praca z linią komend

Jak widać, bardzo wiele można w MATLAB’ie „wyklikać”. W praktyce jednak, kiedy zapoznasz się z poleceniami, które można wpisać w Command Window – największym z widocznych obecnie okien,  w wielu przypadkach nie będziesz chciał tracić czasu na klikanie. Nie jest to żelazną regułą, ale w przypadku tworzenia nowych zmiennych naprawdę łatwiej jest posłużyć się klawiaturą niż myszką.

  • W oknie poleceń MATAB, czyli Command Window wpisz:
ogolem2001 = BMdane(62,1:end)

W Workspace pojawiła się nowa zmienna ogolem2001 - wyjaśnię od razu, co w niej się znalazło. Do nowej zmiennej (której nadałeś nazwę ogolem2001) skopiowałeś część dużej macierzy BMdane (znak przypisania =) wskazując, które wiersze i które kolumny chcesz przepisać. Konkretnie, wskazałeś wiersz nr 62, a po przecinku kolumny, od 1 do ostatniej (end). Stwórz jeszcze dwie kolejne zmienne

  • W oknie poleceń MATAB, wpisz:
spoldzielcze1991 = BMdane(3,:)
spoldzielcze2001 = BMdane(63,:)

Utworzyłeś dwie zmienne opisujące, ile mieszkań spółdzielczych oddano do użytku w latach 1991 i 2001. Zwróć uwagę, że przy określaniu kolumn, które miały się znaleźć w nowych zmiennych, zamiast wyrażenia ‘1:end’ pojawił się sam dwukropek, co jest zapisem równoważnym i oznacza po prostu wybierz wszystkie (w ty wypadku wszystkie kolumny).

Z zestawu danych udało Ci się wybrać 4 zmienne, dzięki którym będziesz mógł porównać, jak się miał udział budownictwa spółdzielczego do całości budownictwa mieszkaniowego w roku 1991, a jak w roku 2001. Przede wszystkim, powinieneś wybrać typ wykresu, który w najlepszy sposób zilustruje dane. W MATLABie masz dostęp do dziesiątków różnych rodzajów wykresów – możesz się z nimi zapoznać chociażby dzięki zakładce PLOTS w głównym menu.

  • W oknie Workspace kliknij na zmienną ogolem1991 a następnie przejdź do zakładki PLOTS. Z dostępnej listy wybierz wykres typu bar. W przypadku omawianych danych wykres tego typu wydaje się najwłaściwszy.

Zwróć uwagę na to, że w linii poleceń automatycznie pojawiło się polecenie odpowiedzialne za stworzenie wykresu.

Masz możliwość stworzenia wykresu dla każdej z czterech zmiennych, jednak najwygodniej byłoby obserwować dwie zmienne na jednym wykresie. Jest to możliwe, ale niezbędne są pewne operacje na danych, które masz wyświetlić. Podam Ci polecenie tworzące wykres, a trochę później wyjaśnię dokładnie, dlaczego właśnie tak.

  • W oknie poleceń wpisz
    bar([ogolem1991' spoldzielcze1991'])

bar plot

Na wykresie widać, jaka część mieszkań oddanych w roku 1991 do użytku zaliczała się do budownictwa spółdzielczego. Polecenie które wpisałeś pozwoliło na „sklejenie” danych i umieszczenie ich na wspólnym wykresie. Przeanalizujmy to posługując się kolejnym przykładem. Zobaczmy, jaki był udział budownictwa spółdzielczego w budownictwie mieszkaniowym w roku 2001. stosowny wykres można stworzyć wpisując odpowiednio długie polecenie w jednej linii, my jednak rozłożymy to na etapy. Najpierw zamienimy orientację wektorów ogolem2001 i spoldzielcze2001 z poziomej na pionową poprzez ich transpozycję.

  • W oknie poleceń wpisz:
ogolem2001 = ogolem2001'
spoldzielcze2001 = spoldzielcze2001'

Zauważ, że rozmiar transponowanych wektorów podany w oknie Worspace to obecnie 12x1 (dla danych z roku 1991 to wciąż 1x12).

  • Stwórz teraz nową zmienną pomocniczą „sklejając” powyższe transponowane zmienne.
temp = [ogolem2001 spoldzielcze2001] 

Zauważ, jaki rozmiar ma macierz temp. Został do przeprowadzenia ostatni krok: wyświetlenie danych. Można to zrobić tak, jak to robiłeś wcześniej „przeklikując” się przez menu plot w Workspace, ponieważ jednak dobrze już wiesz, jaki typ wykresu chcesz zastosować, możesz wpisać odpowiednie polecenie w Command Window.

bar(temp)

Ok, widzimy więc jak się ma wkład budownictwa spółdzielczego do całościowo ujętego budownictwa mieszkaniowego w Polsce w roku 2001, jednak porównanie tego z rokiem 1991 jest obecnie niemożliwe, bo poprzedni wykres gdzieś zniknął. Stało się tak dlatego, że domyślnym zachowaniem systemu jest nadpisywanie starego wykresu nowym. Aby kolejne wykresy tworzone były w osobnych oknach, należy wprowadzić polecenie figure – w ten sposób pod wykres przygotowywane jest nowe okno. Skorzystamy z tego rozwiązania w celu ponownego wyświetlenia danych z roku 1991.

  • W oknie poleceń wpisz kolejno
figure
bar([ogolem1991' spoldzielcze1991'])

 

Dzięki wykresom możemy porównać, jak zmieniał się udział budownictwa spółdzielczego w przeciągu jednej dekady. Spróbuj teraz sam utworzyć trzeci wykres typu bar, na którym znajdą się analogiczne informacje dotyczące roku 2014.

Podpowiedź: otwórz okno edycji zmiennej (PLK na BMdane) i odszukaj, gdzie umieszczone są dane dla roku 2014.

Na początek wystarczy. Do tematu budownictwa mieszkaniowego wrócę w kolejnych wpisach tego samouczka, więc dotychczasowe dane przydadzą się później. Aby uniknąć konieczności powtarzania wielu kolejnych kroków, zapisz teraz wyniki dotychczasowej pracy. W zakładce Home kliknij na ikonę opisaną jako save workspace i zapisz pod domyślną nazwą matlab.mat.

Po ponownym uruchomieniu MATLAB’a Workspace będzie pusty, jednak wystarczy wykonać podwójne kliknięcie LPM na pliku matlab.mat, by przywołać wszystkie dane.

 

 

 

(Visited 1 682 times, 1 visits today)

Dodaj komentarz

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