Wprowadzenie
Link do prezentacji: Matlab.pptx
Link do ankiety: https://forms.gle/EyJpJXquwRxmzG2eA
Podstawowe instrukcje Matlaba
clear | – | usuwa zawartość workspace (pamięci) t.j. wszystkie zmienne i dane z pamięci |
help [nazwa instrukcji] | – | uruchamia okno kontekstowe z pomocą |
figure() | – | otwieranie okna |
clc | – | CLear Consol, czyści zawartość konsoli |
clf | – | CLear Figure, czyści zawartość bieżącego okna figure |
plot(x,y) | – | rysuje wykres dwuwymiarowy wykorzystując dane x,y |
rand() | – | losuje liczbę z zakresu od 0 do 1, (rozkład jednostajny) |
length(x) | – | oblicza długość wektora x, jeśli x jest macierzą, to podaje jego dłuższy wymiar |
size(x) | – | zwraca rozmiar argumentu x (skalara, wektora lub macierzy), podaje liczbę wierszy i kolumn |
round(x) | – | zaokrąglanie danych do liczb całkowitych |
– | ||
– | ||
– | ||
– | ||
– |
Podstawy programowania w Matlab
Zadanie 1
- Utwórz funkcję f(x) zwracającą wartość wg formuły f(x)=sin(2x2)-e-4x+3
- Oblicz wartość funkcji f(x) dla x=5
- Utwórz wektor danych x w zakresie od -2 do 6 z krokiem co 0.01 x=-2:0.01:6
- Utwórz wektor danych y przyjmujący wartości funkcji f(x), gdzie x to wcześniej utworzony wektor
- Napisz skrypt rysujący funkcję f(x) w zakresie od -2 do 6
Zadanie 2
- Wygeneruj losowy wektor danych o rozmiarze 100, o liczbach losowych, całkowitych w zakresie -10 do 10. Przypisz go do zmiennej w
- Dodaj wszystkie liczby dodatnie
- Dodaj wszystkie liczby ujemne
- Ile liczb jest w zakresie od 2 do 8 ?
- Podaj numery indeksów wektora w, gdzie przechowywane są liczby w zakresie od -2 do 2
Zadanie 3
- Napisz funkcję, która doda dwa wektory danych a i b o różnych rozmiarach w następujący sposób: Jeśli rozmiar wektora a jest większy od rozmiaru wektora b to wynikowym wektorem jest c o rozmiarze większego wektora (a). Wszystkie elementy ze zbioru b należy dodać do odpowiadających elementów ze zbioru a, a pozostałe elementy ze zbioru a powinny być niezmienione.
- Przetestuj działanie funkcji dla następujących dwóch wektorów a=[-2,2,4,-2,0,7]; b=[5,8,-10]
Zadanie 4
- Utwórz funkcję f(x), która będzie zwracać część liczby x po przecinku (np. gdy x=34.234 to f(x) = 0.234)
- Utwórz wektor danych a o losowych liczbach z zakresu od 0 do 256
- Utwórz wektor b, który będzie przechowywał wartości funkcji f(a) (czyli wartości wektora a po przecinku
- Oblicz średnią wartość wszystkich elementów wektora b
- Utwórz wektor c=a-b. Czy wektor c przechowuje tylko całkowite wartości?
- Utwórz wektor d o rozmiarze 32, który przechowuje średnie wartości z kolejnych 8 liczb z wektora a (np. w pierwszym elemencie wektora d będzie znajdować się średnia pierwszych 8 elementów wektora a, w drugim elemencie d, będzie znajdować się średnia z kolejnych 8 elementów ze zbioru a itd.)
Zadanie 5
- Stwórz funkcję silnia(x), obliczającą silnię z liczby x
- Stwórz funkcję suma(x), obliczającą sumę ciągu wektora x
- Stwórz funkcję srednia(x), obliczającą średnią arytmetyczną z wektora x
- Stwórz funkcję sredniaGeo(x), obliczającą średnią geometryczną z wektora x, funkcja powinna sprawdzać czy w zbiorze znajduje się element 0, jeśli tak to funkcja powinna poinformować o tym użytkownika i zwrócić 0.
- *Stwórz funkcję [X,Y]=okrag(xs,ys,r) przyjmujące argumenty xs,ys – współrzędne środka koła, r – promień koła i zwracające 360 współrzędnych równoodległych punktów leżących na okręgu okręgu.
- *Zrealizuj funkcję z następującymi parametrami [X,Y]=okrag(1,1,4) i narysuj wykres plot(X,Y)
Praca z macierzami i wektorami (przynieście słuchawki)
Macierze: D.mat
Dostępne nagranie z zajęć: nagranie
Zadanie 1 ( Funkcje pracujące na macierzach )
- Funkcja zwracającą średnią wartość wszystkich elementów macierzy oraz liczbę zer
- Funkcja zwracająca maksymalną wartość macierzy oraz jej współrzędne
Zadanie 2
- Otwórz plik D.mat
- Zapisz do zmiennej y pierwszą kolumnę macierzy D
- Wyświetl dane za pomocą funkcji plot(). Co to za dane ?
- Odtwórz drugą kolumnę danych
- Odtwórz trzecią i zrealizuj ukryty przekaz 😊
Zadanie 3
- Zarejestruj dźwięk wychwalający wspaniałość Matlaba z twoim ulubionym podkładem muzycznym
- Zwróć uwagę na częstotliwość próbkowania podkładu muzycznego (z pliku mp3)
- Zapisz dane do mat-pliku SuperMatlab.mat
Zadanie 4
- Zrealizuj kreatywne wykorzystanie mikrofonu, dokonaj ciekawej manipulacji plikiem dźwiękowym i zaprezentuj na zajęciach
Wizualizacja danych cz.1
Zadanie 1
- Odtwórz dane D.mat z poprzedniego zadania i zapisz pierwszą kolumnę danych do y.
- Podpisz osie wykresu
- Wskaż w prostokącie miejsce gdzie wypowiedziano słowo „Matlab” i podpisz je
- Wskazany fragment wykresu przedstaw w powiększeniu na kolejnym wykresie, ale w tym samym oknie
* w tym oknie narysuj oryginalny przebieg lekko transparentny, a słowo Matlab narysuj pełną linią i obierz w ramkę w postaci linii przerywanej dowolnego koloru. - Zapisz to okno do pliku okno.fig
- Zapisz obraz do pliku graficznego .jpeg z rozdzielczością 400 dpi oraz do formatu .pdf.
Zadanie 2
- Odczytaj swoje nagranie (jeśli nie masz możesz skorzystać z jednego z kanałów zapisanych w D.mat)
- Wskaż strzałką najgłośniejszy dźwięk, wzmocnij go o 20% i opisz go tekstem
Zadanie 3
- Wygeneruj wartości funkcji f(x)=2+3*sin(x*x), g(x)= 3-1/(1+x²), k(x)=-3e-x, dla x z zakresu od 0 do 10, zawierającym 1000 elementów (użyj linspace() )
- Oblicz wartości średnie tych funkcji dla wskazanych argumentów x
- Wskaż maksymalne i minimalne wartości
Wizualizacja danych cz.2
Zadanie 4
- Stwórz funkcję dwóch zmiennych f(x,y)=x*cos(y)+y*sin(x)
- Narysuj wykres tej funkcji w przedziale x=-pi do pi i y= -pi do pi
- Zaznacz i odczytaj z wykresu najmniejszą wartość tej funkcji
- Oblicz minimalną wartość tej funkcji za pomocą instrukcji min()
- Oblicz jaki jest błąd odczytu tj. różnica wartości z p. iii i p. iv
Zadanie 2
- Odczytaj zbiór danych D.mat z poprzednich zajęć i wyodrębnij pierwszy kanał do zmiennej y.
- Napisz program, który będzie odtwarzał dźwięk, jednocześnie rysując go na ekranie w oknie figure(1).