Popularny post Marcel_S Napisano Grudzień 16, 2024 Popularny post Udostępnij Napisano Grudzień 16, 2024 (edytowany) Wstęp Dotychczasowe moje artykuły dotyczyły przeważnie prostych tematów. Sortowanie danych, systemy liczbowe, czy sterowniki PLC. Teraz zaprezentuję Wam bardziej zaawansowane narzędzie. Napotkacie go na studiach, ale także jest szansa, że wykorzystacie go w swoich projektach. W tym artykule przedstawię Ci: Czym jest Matlab? Gdzie stosuje się Matlaba? Czy warto się go uczyć? Jak zastosować podstawowe techniki do pisania twoich pierwszych programów! Na swojej drodze projektowej na pewno spotkasz się z tym programem, dlatego warto wiedzieć, czym on jest. Źródło zdjęcia. Co to MATLAB? Logo Matlaba. Źródło zdjęcia. Matlab to interaktywne środowisko wykorzystywane przez inżynierów i naukowców na całym świecie. Służy on do zaawansowanych obliczeń i symulacji. Nazwa Matlab wywodzi się od słów Matrix Laboratory i pierwotnie został stworzony do obliczeń na macierzach. Macierze to bardzo ważny temat, bo dzięki nim możesz np. rozwiązać skomplikowany układ elektroniczny lub wykorzystać je do reprezentacji danych, przykładowo odczyty czujnika w czasie. Zastosowania Matlaba Matlaba możesz wykorzystać tam, gdzie masz styczność z: skomplikowanymi operacjami na macierzach i obliczeniami matematycznymi, przetwarzaniem sygnałów - obróbką danych i ich analizą, modelowaniem - przeprowadzaniem symulacji, np. w dziedzinie robotyki, teorią sterowania - implementacją algorytmów sterowania, regulacją, sztuczną inteligencją - machine learningiem i sztucznymi sieciami neuronowymi. Dzięki temu środowisku można wykonywać obliczenia arytmetyczne i na macierzach, pisać skrypty i rozmaite algorytmy lub wykreślać wykresy funkcji 2D i 3D. Należy jednak wspomnieć, że to nie jest arkusz kalkulacyjny jak Excel! Jest to narzędzie, które umożliwia znacznie więcej, szczególnie dla inżyniera. Praktycznym wykorzystaniem programu jest sterowanie urządzeniami. Matlab oferuje biblioteki, za pomocą których można przykładowo regulować temperaturę przedmiotu odpowiednio wysterowując grzałkę i pobierając dane o temperaturze. Takie dane możemy następnie przetworzyć i wykorzystać algorytmy przetwarzania sygnałów. Matlaba można wykorzystać przy symulacji robotyki. Możliwe jest stworzenie modelu manipulatora przemysłowego, na który działają różne obciążenia. Modelowanie i symulacje to ważny etap w projektowaniu skomplikowanych rozwiązań. Źródło zdjęcia. Podsumowując: Matlab to potężne narzędzie, które warto znać, bo ma wiele zastosowań. Jest bardzo wygodne, gdy potrzebne jest zaimplementowanie bardzo skomplikowanego algorytmu. Czy warto się uczyć Matlaba? Jak najbardziej! Warto spróbować swoich sił z tym środowiskiem. Dzięki niemu można rozwiązać wiele skomplikowanych problemów we względnie krótkim czasie przy niewielkim wysiłku. Matlab jest użyteczny w wielu dziedzinach, dlatego nawet podstawowa wiedza o nim będzie bardzo przydatna. Środowisko Matlab to nie tylko program do teoretycznych obliczeń, ale także do praktycznych zastosowań. Źródło zdjęcia. Niestety jest pewien haczyk… Matlab nie jest całkowicie darmowy. Istnieją różne wersje, z których można korzystać. Jeżeli jesteś studentem kierunku technicznego, to twoja uczelnia powinna oferować Ci darmowy dostęp do wersji akademickiej. W innym wypadku istnieje 30-dniowa wersja Trial. Możesz też korzystać z Matlaba Online w wersji Basic, który oferuje darmowe korzystanie z programu przez 20 godzin miesięcznie. Podstawy Matlaba Poniżej przedstawiam podstawowe instrukcje, które pozwolą Ci pisać pierwsze programy. Korzystam z Matlaba w wersji R2024a. Po uruchomieniu zobaczymy taki widok: MATLAB R2024a. Jest to okno główne Matlaba. Na razie zajmiemy się tylko jednym jego elementem. 1. Command window Jest to największe, białe okno, w którym widnieją znaki “>>”. Okno umożliwia wpisywanie pojedynczych komend i wykonywanie ich na bieżąco. Na tym etapie możemy zacząć wykonywać proste czynności, na przykład: przypisanie: a = 5 dodawanie, odejmowanie, mnożenie, dzielenie: +, -, *, / operatory porównania: >, <, >=, <=, ~=, komentarze: % Wynik pojawi się po wpisaniu komendy. Wstawienie średnika na końcu spowoduje niepokazanie wyniku. Przykład wykorzystania command window. Jeżeli w command window utworzymy zmienną, to zostanie ona zapamiętana w środowisku i będziemy mogli ją wykorzystać później. Zmienne są zapisywane w workspace. Aby go wyświetlić należy wpisać w command window polecenie workspace. 2. Podstawowe operacje na macierzach a) Definicja Aby zdefiniować macierz należy określić jej strukturę. Gdy definiujemy macierz zapisujemy jej elementy w nawiasie kwadratowym wpisując po kolei jej elementy. Kolejne wiersze oddzielamy średnikiem. Między elementami może być przecinek, lecz nie musi. Ważna uwaga: indeks pierwszego elementu wynosi 1! Zaznaczam to, bo w innych językach może wynosić 0. Aby utworzyć wektor należy stworzyć macierz o jednym wierszu, czyli nie rozdzielać liczb średnikiem. Przykład definicji macierzy: Definicja macierzy w command window. b) Odwołanie się do elementów Podobnie jak w innych językach programowania, aby odwołać się do konkretnego elementu należy podać jego indeksy. W przypadku Matlaba indeksy podaje się w nawiasach okrągłych: Wpisanie A(3, 2) zwróci element w trzecim wierszu, drugiej kolumnie, czyli 32. Odwołanie się do pojedynczego elementu. Możemy odwołać się do całego wiersza. Polecenie A(2, : ) zwraca wszystkie elementy z drugiego wiersza. Jeżeli chcemy odwołać się do całej drugiej kolumny, to napiszemy A(:, 2). Odwołanie się do całego wiersza lub kolumny. W przypadku, gdy potrzebujemy kilku wybranych wierszy/kolumn, to możemy przekazać wektor z potrzebnymi indeksami. Wektor, podobnie jak macierz, zapisuje się w nawiasach kwadratowych. Wybranie elementów z 1. i 3. wiersza i z 1. i 3. kolumny. Chcąc wybrać następujące po sobie wiersze/kolumny należy wpisać w odpowiednie miejsce następującą formułę ze swoimi danymi: indeks_startu:krok:indeks_stopu. Utworzyłem nową macierz. Wybrałem z niej elementy od 2. do 4. wiersza. Liczby są z kolumn od 1 do 5, ale z krokiem co 2. Ostatecznie zostanie wybrany element, z co drugiej kolumny. Krok można pominąć. Wtedy wyniesie 1. Stosując polecenie end jako w miejscu indeksu stopu Matlab wybierze wszystkie elementy od indeksu startu do ostatniego możliwego elementu. c) Macierze specjalne Matlab oferuje 3 podstawowe funkcje, dzięki którym można stworzyć specjalną macierz o charakterystycznych elementach: zeros() - macierz wypełniona zerami. ones() - macierz wypełniona jedynkami. rand() - macierz o losowych elementach. We wszystkich przypadkach pierwszy argument do funkcji to ilość wierszy, a drugi to liczba kolumn. Wykorzystanie funkcji zeros(), ones() i rand(). Może zdarzyć się sytuacja, w której będziesz potrzebował/a macierz o jednakowych elementach, ale różnych od 1. W tym celu: pomnóż macierz ones() przez tę liczbę… …lub dodaj do niej o 1 mniejszą liczbę. Dwie techniki definicji macierzy o jednakowych elementach. Macierz rand() zwraca losowe elementy od 0 do 1. Jeżeli chcesz przesunąć zakres, to zastosuj następującą technikę: losowa_macierz = rand(liczba_wierszy, liczba_kolumn) * rozpiętość_przedziału + indeks_rozpoczęcia. Przykładowo: index_rozpoczęcia = 5 - dolna granica przedziału, rozpiętość_przedziału = 7 - ile elementów będzie w dobranym zakresie, Ostatecznie największa możliwa liczba wyniesie 5+7=12, a więc przedział będzie wynosił liczby z zakresu <5, 12>. Macierz o losowych elementach z zakresu <5, 12>. d) Operacje na macierzach Oczywiście macierze możemy dodawać, mnożyć i modyfikować poprzez stałe. Zapamiętaj, że w Matlabie występują dwa rodzaje mnożenia macierzy. Zwykłe mnożenie zapisujemy jako gwiazdka ( * ). Element-wise multiplication zapisuje się jako kropka i gwiazdka ( .* ). Definicje nowych macierzy. Przykładowe operacje na macierzach. 3. Przydatne funkcje Przed rozpoczęciem tego punktu wygodniej będzie przenieść się do skryptu. W tym celu należy utworzyć nowy skrypt w lewym górnym rogu: Tworzenie nowego skryptu. Ukaże się okno, w którym można pisać skrypt. Znajduje się nad command window. a) Wykres funkcji 2D. Funkcja plot() Przed wyświetleniem funkcji, należy najpierw wygenerować dane osi x i y. Najprostszym sposobem jest wygenerowanie wektorów, które będą reprezentowały te dane. Można posłużyć się funkcją linspace(). Generuję wartości osi x. Posłużę się funkcją linspace(), która tworzy wektor o podanej rozpiętości i ilości elementów. Argumenty funkcji to odpowiednio: pierwszy element, ostatni element, ilość elementów w wektorze. Jako dane dla osi y wybiorę funkcję sinus. Wykorzystam funkcję sin(). Utworzę okno posługując się funkcją figure(n), gdzie n to numer okna. To nasze pierwsze okno, więc n wyniesie 1. Czas na wyświetlenie wykresu - korzystam z funkcji plot(x, y). Pierwszym argumentem jest wektor x a drugim y. Prosty skrypt wykorzystujący funkcję plot(). Po kliknięciu przycisku run powinien wyświetlić się poniższy wykres: Funkcja sinus. Można zauważyć, że wykres jest kanciasty. To przez małą liczbę elementów w wektorze. Zmieńmy liczbę elementów ze 100 do 1000. Wykres sinusa przy większej ilości danych. Wykres wygląda lepiej i dokładniej odwzorowuje funkcję. Oprócz funkcji sinus możesz zwizualizować inne funkcje trygonometryczne lub swoje własne dane. b) Funkcja subplot() Służy do wyświetlania kilku wykresów w jednym oknie. Moglibyśmy wyświetlać je w kilku oknach tworząc nowe funkcją figure(), ale metoda, którą teraz przedstawię, często przydaje się, gdy porównujemy ze sobą kilka danych przedstawionych na wykresach. Wykorzystuję wcześniej zrobiony sinus i dodatkowo tworzę cosinusa. Tworzę okno dla wykresów funkcji funkcją figure(). Wykorzystuję funkcję subplot(w, k, p). Argumenty funkcji kolejno: w – liczba wierszy w oknie, k – liczba kolumn w oknie, p – pozycja funkcji, którą chcemy wyświetlić. Gdy wyświetlamy pierwszy wykres, to piszemy 1, przy drugim 2 itp… Zakładając, że mamy dwie funkcje do wykreślenia, to będziemy potrzebowali dwóch wierszy (na dwie funkcje) i jedną kolumnę. Wykreślam kolejne wykresy funkcją plot(x, y). Skrypt wykorzystujący funkcję subplot(). Wynik: Wynik skryptu. c) Help i dokumentacja Matlaba Za nami już kilka przydatnych funkcji. Nie trzeba ich się uczyć na pamięć, bo Matlab posiada bogatą dokumentację. Wystarczy w command window wpisać help, a następnie nazwę funkcji, którą chcemy użyć. Wykorzystanie komendy help. W helpie jest opisana funkcja, jej działanie, argumenty, które przyjmuje, co zwraca, przykłady i wiele innych przydatnych informacji. Oprócz tego zachęcam Cię do przejrzenia ogólnej dokumentacji. Znajdziesz ją w prawym górnym rogu, klikając znak zapytania. Prawy górny róg Matlaba. Tutaj znajdziesz kilka cennych elementów, takich jak dokumentacja środowiska. d) Instrukcja warunkowa if Bardzo przydatnym elementem Matlaba jest możliwość wykorzystania instrukcji warunkowej. Jej składnia prezentuje się następująco: if warunek Działanie elseif warunek Operacja else Operacja end Utwórzmy prosty skrypt, który zaprezentuje działanie ifa. Sprawdźmy, czy podając 3 długości można z nich utworzyć trójkąt: Definiujemy 3 liczby, które będą reprezentowały długości 3 boków trójkąta: a, b, c. Trójkąt jest możliwy do stworzenia, jeżeli suma dowolnych dwóch boków jest większa od trzeciego boku. Innymi słowy, poniższe warunki muszą zostać spełnione: a + b > c, a + c > b, b + c > a. Jeżeli warunek będzie spełniony, to wyświetlimy napis ‘Można utworzyć trójkąt’. W przeciwnym wypadku wyświetlimy ‘NIE można utworzyć trójkąta’. Wykorzystanie instrukcji warunkowej if. Do wyświetlenia napisu można też użyć funkcji disp(). Taki program powinien wyświetlać wynik w command window. e) Funkcje Przenieśmy ten program do osobnej funkcji, którą będziemy mogli wywoływać wielokrotnie bez powtarzania nadmiernej ilości kodu. W tym celu wykonajmy następujące kroki: W tym samym folderze, w którym jest twój główny skrypt, utwórzmy nowy skrypt. Pamiętaj, że nazwa funkcji musi mieć taką samą nazwę, co nazwa skryptu. Utwórzmy funkcję zgodnie z poniższą składnią: function zmienna_wyjściowa = nazwa_pliku(zmienne_wejściowe) W naszym przypadku: Zmienną wyjściową nazwijmy odp (odpowiedź). Nazwę pliku nazwijmy czy_trójkąt. Zmienne wejściowe to będą liczby a, b, c. Przepiszmy całą funkcję z głównego skryptu zamieniając funkcje wyświetlającą napis na przypisanie odpowiedzi do zmiennej odp. Funkcja czy_trojkat. Wywołanie funkcji. f) Pętla for Ostatnim przydatnym elementem, który chcę Ci pokazać są pętle. Służą one powtarzania pewnej czynności tyle razy ile zadeklarowaliśmy. Jej składnia wygląda następująco: for iterator = pierwszy_element:krok:ostatni_element Operacje end Napiszmy prosty przykład, w którym kilka razy wykonamy kilka operacji na zmiennej. Wykorzystano pętlę for do powtórzenia operacji. Podsumowanie MATLAB to wszechstronne i potężne narzędzie, które oferuje szerokie możliwości w zakresie rozwiązywania skomplikowanych problemów inżynieryjnych, matematycznych i naukowych. Chociaż MATLAB nie jest darmowy, jego zalety w projektowaniu, modelowaniu i analizie danych czynią go wartym nauki i inwestycji, zwłaszcza dla osób związanych z dziedzinami technicznymi. Nawet podstawowa znajomość tego środowiska może otworzyć nowe możliwości i ułatwić pracę przy wielu projektach. Jeżeli chcesz zobaczyć jak Matlab jest wykorzystywany do praktycznych celów polecam artykuł o programowaniu Arduino z użyciem tego narzędzia. Spróbuj napisać kilka skryptów/algorytmów samodzielnie. Poznawaj więcej funkcji i możliwości i spróbuj wykorzystać potencjał środowiska. Edytowano Grudzień 17, 2024 przez Marcel_S kontynuacja redakcji 6 Link do komentarza Share on other sites More sharing options...
roz Grudzień 21, 2024 Udostępnij Grudzień 21, 2024 Super, jedna uwaga, przy rozdzielczości 4k niektóre zrzuty ekranu zdecydowanie za małe - są nieczytelne. Szczególnie pierwsze dwa. Link do komentarza Share on other sites More sharing options...
FlyingDutch Grudzień 21, 2024 Udostępnij Grudzień 21, 2024 Cześć @Marcel_S. Fajny artykuł, szkoda tylko, że MATLAB jest komercyjny i drogi. Co sądzisz o darmowym odpowiedniku "GNUOctave" ? Pozdrawiam 1 Link do komentarza Share on other sites More sharing options...
Marcel_S Grudzień 22, 2024 Autor tematu Udostępnij Grudzień 22, 2024 @roz Dzięki za opinię! @FlyingDutch Dziękuję za opinię. Nigdy nie korzystałem z tego programu 😕 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »