Archiwum kategorii: Tutorial

MATLAB Tutorial #11

Import danych z wielu plików

W zasadzie tutorial został zakończony. Celem dotychczasowych wpisów serii było zaznajomienie użytkownika ze środowiskiem MATLAB na tyle, by mógł on usiąść przed komputerem i zacząć z programem w miarę wygodnie pracować. Oczywiście w praktyce, gdy przychodzi zmierzyć się z rzeczywistym problemem, dość szybko okazuje się, że czegoś ważnego w tutorialu nie było… No i jest to jak najbardziej zrozumiała sytuacja. Wszystkiego zamknąć w krótkim samouczku nie sposób, można jednak poruszyć kilka dość często pojawiających się problemów. A jeden z najczęściej pojawiających się, to problem sprawnego odczytu danych z wielu plików.
Czytaj dalej MATLAB Tutorial #11

MATLAB Tutorial #10

Instrukcja warunkowa IF

Treść obu stworzonych uprzednio plików (monty_uparciuch.m oraz monty_niestateczny.m) w znacznym stopniu się pokrywa. Różnica pomiędzy nimi polega na tym, że w jednym przypadku gracza stawia się przed możliwością zmiany wyboru bramki i gracz z tej propozycji korzysta, w drugim pozostaje on przy swoim pierwotnym wyborze. Dołożymy do kodu zawartego w monty_niestateczny dodatkową część, która będzie uzależniała przebieg algorytmu od zdefiniowanych warunków – w naszym przypadku takim warunkiem będzie wybór strategii, jaką obrał gracz.

Czytaj dalej MATLAB Tutorial #10

MATLAB Tutorial #9

W ostatniej części poradnika przedstawiłem dwa sposoby symulacji zachowania uparciuchów uczestniczących w turnieju "Idź na całość". Tym razem zajmiemy się symulacją zachowania graczy niestatecznych, którzy, jeśli nadarzy się okazja, zmieniają swoje pierwotne wskazania. Zadanie jest o wiele trudniejsze i tym razem ciężko jest obyć się bez pomocy pętli for.

Czytaj dalej MATLAB Tutorial #9

MATLAB Tutorial #8

Programowanie w MATLABie

W poprzedniej części poradnika pokazałem, jak w MATLABie można ułatwić sobie prace dzięki tworzeniu skryptów. Skrypty umożliwiają zebranie szeregu instrukcji w ramach jednego pliku tekstowego, ich opisanie, wywołanie i w końcu, w razie potrzeby, łatwą edycję. Ale to nie wszystko. Skryptu umożliwiają również wprowadzenie do tworzonych procedur różnych instrukcji sterujących, dzięki czemu MATLAB może być traktowany jako język programowania.

Czytaj dalej MATLAB Tutorial #8

MATLAB Tutorial #7

Tworzenie skryptów

W zasadzie, do tej pory na każdym kroku podkreślałem, że MATLAB nie powinien być postrzegany wyłącznie jako język programowania. Jest to przede wszystkim środowisko obliczeniowe, w uproszczeniu można nawet powiedzieć: rozbudowany kalkulator. Niemniej jednak, wraz z rosnącą złożonością problemów obliczeniowych, przed jakimi stajemy, zmiana podejścia do programu jest nieunikniona. Realizując poprzednią część poradnika stworzyłeś procedurę, która w oparciu o wejściowe dane umożliwiła wyświetlenie wykresu przedstawiającego miesięczną liczbę oddanych do użytku mieszkań poczynając od roku 1991 po dzień dzisiejszy. Do tego doszło poszukiwanie miesiąca, dla którego liczba mieszkań osiągnęła maksimum oraz wszystkich nietypowych miesięcy, gdy liczba oddanych do użytku mieszkań przekroczyła dowolnie wskazany poziom. Zrealizowanie tego wymagało wpisania kilkunastu linii kodu. Nie jest to zbyt dużo i obiektywnie na to patrząc, stworzenie tego kodu nie było trudne. Jednak, jeśli przyszłoby nam wykonać identyczną analizę, ale ograniczoną np. wyłącznie do mieszkań „spółdzielczych”, znaczną część kodu należałoby wpisać ponownie Choć wymagane modyfikacje kodu są niewielkie, wklepywanie niemalże wszystkiego od początku w wierszu poleceń, to ewidentnie strata czasu. Na tym etapie warto sięgnąć po narzędzie, jakim jest skrypt.
Czytaj dalej MATLAB Tutorial #7

Matlab Tutorial #6

Choć MATLAB może być traktowany jako język programowania, na pewno może zaskoczyć nietypowymi, dla "rasowego" programisty rozwiązaniami. Idea jest w zasadzie taka, by użytkownik środowiska MATLAB analizując dane nie musiał uciekać się na każdym kroku do tworzenia funkcji pomocniczych i wykorzystywania konstrukcji programistycznych takich jak pętle i instrukcje warunkowe. One w MATLABie oczywiście istnieją  i są w wielu sytuacjach niezbędne, jednak wiele można zrobić bez nich.

Czytaj dalej Matlab Tutorial #6

Matlab Tutorial #5

Przekształcanie macierzy

 

Na dane związane z budownictwem mieszkaniowym, które służą nam jako baza do zapoznania się z MATLABem, można patrzeć naprawdę w różny sposób. Wierzę, że jeśli chcesz poeksperymentować i wyciągnąć z pliku interesujące Cię informacje, to jesteś już w stanie zrobić to sam. Niemniej jednak chciałem zademonstrować Ci działanie kolejnej funkcji MATLABa, która przy wstępnej pracy z danymi macierzowymi może się przydać.

Przypuśćmy, że chcemy zaobserwować, jak z miesiąca na miesiąc zmieniała się ogólna liczba oddanych do użytku mieszkań, począwszy od roku 1991 a kończąc na roku 2011. Możemy oczywiście wybierać poszczególne wektory dla poszczególnych lat i sklejać je potem w całość ale możemy też zrobić to sprytniej. Czytaj dalej Matlab Tutorial #5

Matlab Tutorial #4

Indeksowanie macierzy

Przyglądniemy się teraz naszym danym w inny sposób.  Zobaczmy,  jak na przestrzeni lat zmieniała się liczba oddanych do użytku mieszkań budowanych przez inwestorów indywidualnych. W celu zaznajomienia się z problemem, otwórz do podglądu plik arkusza Excel z pierwotnymi danymi.

  • w przeglądarce plików, w oknie current folder kliknij prawym przyciskiem myszy na pliku mieszkania*.xls i wybierz opcję open outside MATLAB

liczba mieszkań - excell

Czytaj dalej Matlab Tutorial #4

MATLAB Tutorial #3

Działanie funkcji na wektorach

W MATLABie większość funkcji obliczeniowych i graficznych możemy wywoływać na wektorach oraz macierzach. W niektórych przypadkach wymiar macierzy będącej argumentem wejściowym funkcji nie ma większego znaczenia, gdyż funkcje mogą traktować macierz jako zbiór niezależnych elementów, gdzie obliczenia wywoływane są dla każdego elementu niezależnie. Na przykład działają tak funkcje trygonometryczne.

x = sin(ogolem1991)

Oczywiście sens powyższej operacji jest mocno dyskusyjny 🙂 W każdym razie, w przypadku funkcji sinus wynik został wyznaczony niezależnie dla każdego elementu macierzy ogolem1991. Nieco inaczej sprawa wygląda, gdy dla danych uruchomimy funkcję typu diff lub jedną z funkcji statystycznych. Tutaj wymiar ma znaczenie. Zacznijmy od prostszego przypadku, czyli od pracy z wektorem.

  • Wyznacz średnią ilość mieszkań spółdzielczych oddawanych do użytku miesięcznie w roku 1991
spoldzielcze1991M = diff(spoldzielcze1991);
spoldzielcze1991M = [spoldzielcze1991(1) spoldzielcze1991M];
x = mean(spoldzielcze1991M)

x =

6.9628e+03

Funkcja mean wyznaczyła wartość średnią dla wszystkich danych zebranych w wektorze spoldzielcze1991M. MATLAB przedstawił wynik w specyficznym formacie "naukowym". 6.9628e+03 oznacza 6.9628 * 1000.

Czytaj dalej MATLAB Tutorial #3