Einführung in MATLAB: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Markierung: Manuelle Zurücksetzung
 
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:MATLAB]]
'''Autor:'''  [[Benutzer:Ulrich_Schneider|Prof. Ulrich Schneider]]
'''Autor:'''  [[Benutzer:Ulrich_Schneider|Prof. Ulrich Schneider]]


Umfang der virtuelle Lehrveranstaltung: 2 SWS


= Lektion 1: Matlab Getting Started =
Für den Einstieg in MATLAB bieten sich die nachfolgenden Möglichkeiten an.
== Header ==
Verwenden Sie in jeder Datei einen Header, der die nachfolgenden Fragen beantwortet:
* Um welches Modul handelt es sich?
* Was macht das Modul oder die Funktion?
* Wer sind die Autoren?
* Zu welcher Hochschule, Veranstaltung, Projekt gehört der Code?
* Bei Funktionen: Welche Eingangs- und Ausgangsparameter hat fie Funktion?
* Wann wurde die Datei erstellt und wann zuletzt geändert?
* Wird eine spezielle Toolbox verwendet?


=== Beispiel ===
== MATLAB-Syntax in a nutshell ==
<source lang="matlab" style="font-size:medium">
Hier finden Sie eine Übersicht der wichtigsten [[MATLAB-Befehle|MATLAB-Befehle]].
%****************************************************************
%        Hochschule Hamm-Lippstadt                              *
%****************************************************************
% Modul           : ML_5_2b                                    *
%                                                              *
% Datum          : 16-Mai-2014                                *
%                                                              *
% Funktion        : Moire Muster im Frequenzbereich entfernt    *
%                                                              *
% Implementation  : MATLAB R2013a                              *
%                                                              *
% Toolbox        : Camera Calibration Toolbox                  *
%                                                              *
% Author          : Prof. Schneider                            *
%                                                              *
% Bemerkung      : basierend auf der                          *
%                  Camera Calibration Toolbox for Matlab      *
%            http://www.vision.caltech.edu/bouguetj/calib_doc/ *
%                                                              *
% Letzte Änderung : 03. Januar 2014                            *
%                                                              *
%***************************************************************/
</source>


== Bild mit interaktivem Dialog laden ==
* Laden Sie ein Bild indem Sie den Nutzer die Datei mit einem GUI auswählen lassen.
* Von der Bilddatei sill anschließend Pfad und Dateiname verfügbar sein.


=== Musterlösung ===
== Einstieg über MathWorks Kurse ==
<source lang="matlab" style="font-size:medium">
Ein einfachen Weg für den Einstieg in die MATLAB-Toolwelt bieten die kostenlosen Self-Pace Kurse.
% Schalter um das Lade-GUI zu umgehen
* [https://www.mathworks.com/learn/tutorials/matlab-onramp.html MATLAB Onramp]
bShortCut=false;
* [https://www.mathworks.com/training-schedule/matlab-fundamentals MATLAB Fundamentals]
* [https://matlabacademy.mathworks.com/ Kursübersicht MATLAB and Simulink Training]


if (bShortCut==true)
    % vorgegebene Bilddatei laden
    filename = 'P3_image_error.png';
    pathname = [cd,'\'];
    disp(['Alternatives Bild laden: ', fullfile(pathname, filename)])
else
    % Interaktiven Dialog starten
    [filename, pathname] = ...
        uigetfile({'*.png';'*.*'},'File Selector'); % Fokus auf Dateiendung '*.png'
    if isequal(filename,0)
        disp('User selected Cancel') 
    else
        disp(['User selected', fullfile(pathname, filename)])
    end
end
% Bild laden
Originalbild = imread([pathname, filename]);
</source>


== Lektion: Animated Gif erstellen ==
=== Fragestellungen, Begriffe und Voraussetzungen ===
In dieser Lektion lernen Sie, ein ''Animated Gif'' mit Matlab zu erstellen.
'''Fragestellungen'''<br>
MATLAB von der Firma Mathworks ist ein sehr mächtiges Simulationstool. Die Fragestellung dieser Lektion ist wie man mit MATLAB umgeht.


'''Zeitumfang:''' 45 Minuten  
'''Eingeführte Begriffe und Konzepte'''
*Der Selfpace-eLearning-Kurs MATLAB Onramp stellt mit zahlreichen Beispielen in 135 Minuten die Grundfunktionen von MATLAB vor, begonnen mit dem Command Window, dem Desktop und dem Editor.  MATLAB wurde entwickelt, um mit Vektoren und Matrizen zu arbeiten. Der Zugriff auf Matrizenzellen und Matrizenrechnung wird erläutert.
*Komplexe Programme können in Funktionen modularisiert werden. Die MATLAB Hilfe gibt wichtige Hinweise zum Aufruf von Funktionen.
*Daten können importiert und in Diagrammen visualisiert werden. Die Grundlagen der Programmierung mit Verweigungen und Schleifen wird vertieft.


=== Aufgabe ===
'''Vorausgesetzte Kenntnisse aus vorangegangenen Kapiteln'''<br>
* Simulieren Sie zyklisch einen variierenden Funktionsgrafen, der sich mit der Zeit verändert.
Grundlagen der Vektoralgebra
* Speichern Sie die Einzelbilder in einer n-dimensionalen Matrix ab.
* Speichern Sie diese Matrix als animierte Bilddatei <code>Animated.gif</code> ab.
'''Tipp:''' verwenden Sie zum Zusammenfügen der Bilder <source lang="matlab" style="font-size:medium">imwrite(ImageData,map,filename,'gif','WriteMode','append')</source>


=== [[Animated Gif mit Matlab erstellen|Musterlösung]] ===
=== Lernziele ===
Nach Durchführung dieser Lektion
*können Sie mit der MATLAB-Oberfläche umgehen.
*können Sie Programme schreiben und speichern.
*können Sie mit Matrizen rechnen und auf deren Inhalt gezielt zugreifen.
*können Sie Daten laden, speichern und anzeigen.
*kennen Sie die Programmiergrundelemente: Verzeigung und Schleifen und können diese in MATLAB anwenden.
*können Sie komplexe Programmteile in einer Funktion auslagern.
*können Sie mit der MATLAB Hilfe umgehen.


=== Beispiel ===
== Einstieg über de.linkedin.com ==
[[Datei:AnimatedGif 01.gif]]
Kostenlos sind für HSHL Studierende ebenfalls die E-Learning Kurse bei Linked:in.
*[https://de.linkedin.com/learning/matlab-grundkurs?trk=learning-topics_trending-courses_related-content-card&upsellOrderOrigin=default_guest_learning MATLAB Grundkurs]


== Lektion: [[Video aus Matlab Simulation erstellen | Video aus Simulation erstellen]] ==
== Einsteig über ein Fachbuch ==
Erarbeiten Sie sich anhand des Buches
Stein, U.: Programmieren mit MATLAB : Programmiersprache, grafische Benutzeroberflächen, Anwendungen. München : Fachbuchverlag Leipzig im Carl Hanser Verlag, 6. Auflage 2017. HSHL-eBook
die Informatikgrundlagen zu Programmstrukturen in Kapitel 2.


== Geschützte p-Funktion erzeugen ==
=== Fragestellungen, Begriffe und Voraussetzungen===
Wenn man eine m-Funktion schützen möchte, so dass sie zwar verwendbar, jedoch nicht einsehbar ist, lässt sich diese mit einem Schritt in eine p-Funktion (''protected function'') umwandeln.
'''Fragestellungen'''
<source lang="matlab" style="font-size:medium">
MATLAB ist ein multifunktionelles wissenschaftliches Werkzeug, mit denen z.B. Messdaten gelesen, analysiert, verarbeitet und visualisiert werden können. Mechatroniker*innen werden mit MATLAB simulieren, Daten auswerten und sogar in Echtzeit mechatronische Systeme regeln. Fragestellung dieser Lektion sind die Programmstrukturen von MATLAB.
pcode(fun)
</source>


== Lektion: [[MATLAB Executable aus GUI erstellen]] ==
'''Eingeführte Begriffe und Konzepte'''
*Funtionen bieten die Möglichkeit Programmteile, die häufiger ausgeführt werden zu kapseln. Es Möglichkeit zum Debuggen lassen sich über das Command Window ein und Ausgaben machen.
*Verzweigungen und Schleifen sind grundlegenden Programmstrukturen der Informatik.
* MATLAB kann hervorragend mit Feldern (Vektoren/Matrizen) arbeiten. Sie Zugriffe auf die Feldeinträge sind äußerst simpel. Dies gilt auch für die Matrizenrechnung.
* Daten können leicht in individuellen Grafiken angezeigt werden. Diese können umfassend beschriftet werden. Der Datentyp struct und Klassen ermöglichen die Erzeugung komplexere Daten- und Funktionsstrukturen.
*Dateien können ebenfalls als Ein- und Ausgabe dienen. Gezeigt wird der Umgang mit ASCII und Binördateien. Die Erzeugung von Strings ist ein wesentlicher Bestandteil.
 
'''Vorausgesetzte Kenntnisse aus vorangegangenen Kapiteln'''
Grundkenntnisse aus MATLAB Onramp Training: Kommandos, MATLAB Desktop, Editor, Mektoren und Matrizen, Daten importieren und darstellen
 
=== Lernziele===
Nach Durchführung dieser Lektion
* haben Sie Ihre MATLAB Kenntnisse vertieft.
* können Sie abgeschloßene Programmteile in Funktionen kapseln.
* können Sie Informationen im Command Window ausgeben.
* können Sie Verzweigungen und Schleifen programmieren.
* können Sie Matrizen erzeugen und auf deren Felder zugreifen.
* können Sie Daten in Grafiken visualisieren.
* können Sie Strukturen anlegen und auf deren Inhalte zugreifen.
* können Sie Daten aus Text-Dateien lesen und darin schreiben.
* können Sie mit Character-Arrays umgehen.
 
=== Lernzielkontrolle ===
Üben Sie Ihre Kenntnisse praktisch mit den nachfolgenden Aufgaben. Die Tutoren Unterstützen Sie gern bei Fragen.
 
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_1.pdf Funktionen]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_2.pdf Ein- und Ausgaben]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_4.pdf Verzweigungen]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_5.pdf Schleifen]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_6.pdf Felder]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_7.pdf Grafik]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_8.pdf Strukturen]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_9.pdf Dateien]
# [http://www.stein-ulrich.de/MATLAB/Aufgaben/K2/Aufgaben_Kapitel_02_10.pdf Strings]
 
 
Die Lösungen finden Sie [http://www.stein-ulrich.de/Matlab/Aufgaben/Kapitel_02Frame.php hier].


== Weiterführende Links ==
== Weiterführende Links ==
Zeile 100: Zeile 95:
*[http://makerzone.mathworks.com/?s_v1=1367&elq_cid=2990116&elq=8cd5d85fe28a492bb326b34f88a1aacf&elqCampaignId=348 Matlab Maker Zone]
*[http://makerzone.mathworks.com/?s_v1=1367&elq_cid=2990116&elq=8cd5d85fe28a492bb326b34f88a1aacf&elqCampaignId=348 Matlab Maker Zone]
*[https://www.mathworks.de/academia/courseware/applied-autonomous-robots-1/index.html?s_v1=1367&elq_cid=2990116&elq=8cd5d85fe28a492bb326b34f88a1aacf&elqCampaignId=348 "Applied Autonomous Robots I" Courseware]
*[https://www.mathworks.de/academia/courseware/applied-autonomous-robots-1/index.html?s_v1=1367&elq_cid=2990116&elq=8cd5d85fe28a492bb326b34f88a1aacf&elqCampaignId=348 "Applied Autonomous Robots I" Courseware]
*[[MATLAB Grader]]
*[[Medium:Programmierrichtlinien_für_Matlab.pdf|Programmierrichtlinien für Matlab]]
== Literatur ==
*[https://link.springer.com/book/10.1007/978-3-642-05453-2 '''Benker, H.''': ''Ingenieurmathematik kompakt – Problemlösungen mit MATLAB''. Heidelberg: Springer eBook 2010. ISBN 978-3-642-05453-2]
*[https://www.hanser-fachbuch.de/buch/Programmieren+mit+MATLAB/9783446448643 '''Stein, U''': ''Programmieren mit MATLAB''. Leipzig, Hanser Verlag 2017. ISBN 978-3-446-45583-2]
*[http://www.math.toronto.edu/mpugh/primer.pdf '''Sigmon, K'''; u.A.: ''MATLAB Primer''. PDF]
*[http://staff.technikum-wien.at/~teschl/MatlabSkriptum.pdf '''Teschl. S.''': ''MATLAB - Eine Einführung''. DOC]
*[https://hshl.bsz-bw.de/cgi-bin/koha/opac-detail.pl?biblionumber=238571&query_desc=kw%2Cwrdl%3A%20MATLAB%C2%AE%20und%20Simulink%C2%AE%20in%20der%20Ingenieurpraxis '''Pietruszka, W. D.; Glöckner, M.''': ''MATLAB® und Simulink® in der Ingenieurpraxis''. Wiesbaden: Springer Verlag, 5. Auflage 2021. ISBN 978-3-658-29740-4]


== [http://193.175.248.56/wiki/index.php/BSD-Lizenzbedingung BSD-Lizenz] ==
== [http://193.175.248.56/wiki/index.php/BSD-Lizenzbedingung BSD-Lizenz] ==

Aktuelle Version vom 25. März 2023, 09:50 Uhr

Autor: Prof. Ulrich Schneider


Für den Einstieg in MATLAB bieten sich die nachfolgenden Möglichkeiten an.

MATLAB-Syntax in a nutshell

Hier finden Sie eine Übersicht der wichtigsten MATLAB-Befehle.


Einstieg über MathWorks Kurse

Ein einfachen Weg für den Einstieg in die MATLAB-Toolwelt bieten die kostenlosen Self-Pace Kurse.


Fragestellungen, Begriffe und Voraussetzungen

Fragestellungen
MATLAB von der Firma Mathworks ist ein sehr mächtiges Simulationstool. Die Fragestellung dieser Lektion ist wie man mit MATLAB umgeht.

Eingeführte Begriffe und Konzepte

  • Der Selfpace-eLearning-Kurs MATLAB Onramp stellt mit zahlreichen Beispielen in 135 Minuten die Grundfunktionen von MATLAB vor, begonnen mit dem Command Window, dem Desktop und dem Editor. MATLAB wurde entwickelt, um mit Vektoren und Matrizen zu arbeiten. Der Zugriff auf Matrizenzellen und Matrizenrechnung wird erläutert.
  • Komplexe Programme können in Funktionen modularisiert werden. Die MATLAB Hilfe gibt wichtige Hinweise zum Aufruf von Funktionen.
  • Daten können importiert und in Diagrammen visualisiert werden. Die Grundlagen der Programmierung mit Verweigungen und Schleifen wird vertieft.

Vorausgesetzte Kenntnisse aus vorangegangenen Kapiteln
Grundlagen der Vektoralgebra

Lernziele

Nach Durchführung dieser Lektion

  • können Sie mit der MATLAB-Oberfläche umgehen.
  • können Sie Programme schreiben und speichern.
  • können Sie mit Matrizen rechnen und auf deren Inhalt gezielt zugreifen.
  • können Sie Daten laden, speichern und anzeigen.
  • kennen Sie die Programmiergrundelemente: Verzeigung und Schleifen und können diese in MATLAB anwenden.
  • können Sie komplexe Programmteile in einer Funktion auslagern.
  • können Sie mit der MATLAB Hilfe umgehen.

Einstieg über de.linkedin.com

Kostenlos sind für HSHL Studierende ebenfalls die E-Learning Kurse bei Linked:in.

Einsteig über ein Fachbuch

Erarbeiten Sie sich anhand des Buches

Stein, U.: Programmieren mit MATLAB : Programmiersprache, grafische Benutzeroberflächen, Anwendungen. München : Fachbuchverlag Leipzig im Carl Hanser Verlag, 6. Auflage 2017. HSHL-eBook

die Informatikgrundlagen zu Programmstrukturen in Kapitel 2.

Fragestellungen, Begriffe und Voraussetzungen

Fragestellungen MATLAB ist ein multifunktionelles wissenschaftliches Werkzeug, mit denen z.B. Messdaten gelesen, analysiert, verarbeitet und visualisiert werden können. Mechatroniker*innen werden mit MATLAB simulieren, Daten auswerten und sogar in Echtzeit mechatronische Systeme regeln. Fragestellung dieser Lektion sind die Programmstrukturen von MATLAB.

Eingeführte Begriffe und Konzepte

  • Funtionen bieten die Möglichkeit Programmteile, die häufiger ausgeführt werden zu kapseln. Es Möglichkeit zum Debuggen lassen sich über das Command Window ein und Ausgaben machen.
  • Verzweigungen und Schleifen sind grundlegenden Programmstrukturen der Informatik.
  • MATLAB kann hervorragend mit Feldern (Vektoren/Matrizen) arbeiten. Sie Zugriffe auf die Feldeinträge sind äußerst simpel. Dies gilt auch für die Matrizenrechnung.
  • Daten können leicht in individuellen Grafiken angezeigt werden. Diese können umfassend beschriftet werden. Der Datentyp struct und Klassen ermöglichen die Erzeugung komplexere Daten- und Funktionsstrukturen.
  • Dateien können ebenfalls als Ein- und Ausgabe dienen. Gezeigt wird der Umgang mit ASCII und Binördateien. Die Erzeugung von Strings ist ein wesentlicher Bestandteil.

Vorausgesetzte Kenntnisse aus vorangegangenen Kapiteln Grundkenntnisse aus MATLAB Onramp Training: Kommandos, MATLAB Desktop, Editor, Mektoren und Matrizen, Daten importieren und darstellen

Lernziele

Nach Durchführung dieser Lektion

  • haben Sie Ihre MATLAB Kenntnisse vertieft.
  • können Sie abgeschloßene Programmteile in Funktionen kapseln.
  • können Sie Informationen im Command Window ausgeben.
  • können Sie Verzweigungen und Schleifen programmieren.
  • können Sie Matrizen erzeugen und auf deren Felder zugreifen.
  • können Sie Daten in Grafiken visualisieren.
  • können Sie Strukturen anlegen und auf deren Inhalte zugreifen.
  • können Sie Daten aus Text-Dateien lesen und darin schreiben.
  • können Sie mit Character-Arrays umgehen.

Lernzielkontrolle

Üben Sie Ihre Kenntnisse praktisch mit den nachfolgenden Aufgaben. Die Tutoren Unterstützen Sie gern bei Fragen.

  1. Funktionen
  2. Ein- und Ausgaben
  3. Verzweigungen
  4. Schleifen
  5. Felder
  6. Grafik
  7. Strukturen
  8. Dateien
  9. Strings


Die Lösungen finden Sie hier.

Weiterführende Links

Literatur

BSD-Lizenz

Copyright (c) 2014, Hochschule Hamm-Lippstadt, Dep. Lip. 1, Prof. Ulrich Schneider
Hochschule Hamm-Lippstadt. Alle Rechte vorbehalten.


→ zurück zum Hauptartikel: Virtuelle Lehrveranstaltungen