9 listopada 2023

Matlab – narzędzie inżynierów

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

  1. Utwórz funkcję f(x) zwracającą wartość wg formuły f(x)=sin(2x2)-e-4x+3
  2. Oblicz wartość funkcji f(x) dla x=5
  3. Utwórz wektor danych x w zakresie od -2 do 6 z krokiem co 0.01 x=-2:0.01:6
  4. Utwórz wektor danych y przyjmujący wartości funkcji f(x), gdzie x to wcześniej utworzony wektor
  5. Napisz skrypt rysujący funkcję f(x) w zakresie od -2 do 6

Zadanie 2

  1. Wygeneruj losowy wektor danych o rozmiarze 100, o liczbach losowych, całkowitych w zakresie -10 do 10. Przypisz go do zmiennej w
  2. Dodaj wszystkie liczby dodatnie
  3. Dodaj wszystkie liczby ujemne
  4. Ile liczb jest w zakresie od 2 do 8 ?
  5. Podaj numery indeksów wektora w, gdzie przechowywane są liczby w zakresie od -2 do 2

Zadanie 3

  1. 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.
  2. 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

  1. 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)
  2. Utwórz wektor danych a o losowych liczbach z zakresu od 0 do 256
  3. Utwórz wektor b, który będzie przechowywał wartości funkcji f(a) (czyli wartości wektora a po przecinku
  4. Oblicz średnią wartość wszystkich elementów wektora b
  5. Utwórz wektor c=a-b. Czy wektor c przechowuje tylko całkowite wartości?
  6. 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

  1. Stwórz funkcję silnia(x), obliczającą silnię z liczby x
  2. Stwórz funkcję suma(x), obliczającą sumę ciągu wektora x
  3. Stwórz funkcję srednia(x), obliczającą średnią arytmetyczną z wektora x
  4. 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.
  5. *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.
  6. *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 )

  1. Funkcja zwracającą średnią wartość wszystkich elementów macierzy oraz liczbę zer
  2. Funkcja zwracająca maksymalną wartość macierzy oraz jej współrzędne

Zadanie 2

  1. Otwórz plik D.mat
  2. Zapisz do zmiennej y pierwszą kolumnę macierzy D
  3. Wyświetl dane za pomocą funkcji plot(). Co to za dane ?
  4. Odtwórz drugą kolumnę danych
  5. Odtwórz trzecią i zrealizuj ukryty przekaz 😊

Zadanie 3

  1. Zarejestruj dźwięk wychwalający wspaniałość Matlaba z twoim ulubionym podkładem muzycznym
  2. Zwróć uwagę na częstotliwość próbkowania podkładu muzycznego (z pliku mp3)
  3. Zapisz dane do mat-pliku SuperMatlab.mat

Zadanie 4

  1. Zrealizuj kreatywne wykorzystanie mikrofonu, dokonaj ciekawej manipulacji plikiem dźwiękowym i zaprezentuj na zajęciach

 

Wizualizacja danych cz.1

Zadanie 1

  1. Odtwórz dane D.mat z poprzedniego zadania i zapisz pierwszą kolumnę danych do y.
  2. Podpisz osie wykresu
  3. Wskaż w prostokącie miejsce gdzie wypowiedziano słowo „Matlab” i podpisz je
  4. 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.
  5. Zapisz to okno do pliku okno.fig
  6. Zapisz obraz do pliku graficznego .jpeg z rozdzielczością 400 dpi oraz do formatu .pdf.

Zadanie 2

  1. Odczytaj swoje nagranie (jeśli nie masz możesz skorzystać z jednego z kanałów zapisanych w D.mat)
  2. Wskaż strzałką najgłośniejszy dźwięk, wzmocnij go o 20% i opisz go tekstem

Zadanie 3

  1. 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() )
  2. Oblicz wartości średnie tych funkcji dla wskazanych argumentów x
  3. Wskaż maksymalne i minimalne wartości

Wizualizacja danych cz.2

Zadanie 4 

  1. Stwórz funkcję dwóch zmiennych f(x,y)=x*cos(y)+y*sin(x)
  2. Narysuj wykres tej funkcji w przedziale x=-pi do pi i y= -pi do pi
  3. Zaznacz i odczytaj z wykresu najmniejszą wartość tej funkcji
  4. Oblicz minimalną wartość tej funkcji za pomocą instrukcji min()
  5. Oblicz jaki jest błąd odczytu tj. różnica wartości z p. iii i p. iv

Zadanie 2

  1. Odczytaj zbiór danych D.mat z poprzednich zajęć i wyodrębnij pierwszy kanał do zmiennej y.
  2. Napisz program, który będzie odtwarzał dźwięk, jednocześnie rysując go na ekranie w oknie figure(1).