MATLAB - Kurzanleitung

MATLAB (Matrixlabor) ist eine hochrangige Programmiersprache der vierten Generation und eine interaktive Umgebung für die numerische Berechnung, Visualisierung und Programmierung.

MATLAB wird von MathWorks entwickelt.

Es ermöglicht Matrixmanipulationen; Zeichnen von Funktionen und Daten; Implementierung von Algorithmen; Erstellung von Benutzeroberflächen; Schnittstelle zu Programmen, die in anderen Sprachen geschrieben sind, einschließlich C, C ++, Java und FORTRAN; Daten analysieren; Algorithmen entwickeln; und Modelle und Anwendungen erstellen.

Es verfügt über zahlreiche integrierte Befehle und mathematische Funktionen, die Sie bei mathematischen Berechnungen, beim Generieren von Plots und beim Ausführen numerischer Methoden unterstützen.

MATLABs Macht der Computermathematik

MATLAB wird in allen Facetten der Computermathematik verwendet. Im Folgenden sind einige häufig verwendete mathematische Berechnungen aufgeführt, bei denen sie am häufigsten verwendet werden:

  • Umgang mit Matrizen und Arrays
  • 2-D- und 3-D-Plot und Grafiken
  • Lineare Algebra
  • Algebraische Gleichungen
  • Nichtlineare Funktionen
  • Statistics
  • Datenanalyse
  • Kalkül und Differentialgleichungen
  • Numerische Berechnungen
  • Integration
  • Transforms
  • Kurvenanpassung
  • Verschiedene andere Sonderfunktionen

Eigenschaften von MATLAB

Im Folgenden sind die Grundfunktionen von MATLAB aufgeführt:

  • Es ist eine Hochsprache für die numerische Berechnung, Visualisierung und Anwendungsentwicklung.

  • Es bietet auch eine interaktive Umgebung für iteratives Erkunden, Entwerfen und Lösen von Problemen.

  • Es bietet eine umfangreiche Bibliothek mathematischer Funktionen für lineare Algebra, Statistik, Fourier-Analyse, Filterung, Optimierung, numerische Integration und Lösung gewöhnlicher Differentialgleichungen.

  • Es bietet integrierte Grafiken zur Visualisierung von Daten und Tools zum Erstellen benutzerdefinierter Diagramme.

  • Die Programmierschnittstelle von MATLAB bietet Entwicklungstools zur Verbesserung der Wartbarkeit der Codequalität und zur Maximierung der Leistung.

  • Es bietet Tools zum Erstellen von Anwendungen mit benutzerdefinierten grafischen Oberflächen.

  • Es bietet Funktionen zur Integration von MATLAB-basierten Algorithmen in externe Anwendungen und Sprachen wie C, Java, .NET und Microsoft Excel.

Verwendung von MATLAB

MATLAB wird häufig als Rechenwerkzeug in Wissenschaft und Technik verwendet und umfasst die Bereiche Physik, Chemie, Mathematik und alle technischen Bereiche. Es wird in einer Reihe von Anwendungen verwendet, darunter -

  • Signalverarbeitung und Kommunikation
  • Bild- und Videoverarbeitung
  • Kontroll systeme
  • Test und Messung
  • Computational Finance
  • Computational Biology

Einrichtung der lokalen Umgebung

Das Einrichten der MATLAB-Umgebung ist mit wenigen Klicks erledigt. Das Installationsprogramm kann hier heruntergeladen werden .

MathWorks bietet das lizenzierte Produkt, eine Testversion und eine Studentenversion. Sie müssen sich auf der Website anmelden und ein wenig auf ihre Genehmigung warten.

Nach dem Herunterladen des Installationsprogramms kann die Software mit wenigen Klicks installiert werden.

Grundlegendes zur MATLAB-Umgebung

Die MATLAB-Entwicklungs-IDE kann über das auf dem Desktop erstellte Symbol gestartet werden. Das Hauptarbeitsfenster in MATLAB heißt Desktop. Wenn MATLAB gestartet wird, wird der Desktop in seinem Standardlayout angezeigt.

Der Desktop verfügt über die folgenden Bedienfelder:

  • Current Folder - In diesem Bereich können Sie auf die Projektordner und -dateien zugreifen.

  • Command Window- Dies ist der Hauptbereich, in dem Befehle über die Befehlszeile eingegeben werden können. Dies wird durch die Eingabeaufforderung (>>) angezeigt.

  • Workspace - Der Arbeitsbereich zeigt alle Variablen an, die aus Dateien erstellt und / oder importiert wurden.

  • Command History - In diesem Bereich werden Befehle angezeigt oder zurückgegeben, die über die Befehlszeile eingegeben wurden.

Richten Sie GNU Octave ein

Wenn Sie bereit sind, Octave auf Ihrem Computer (Linux, BSD, OS X oder Windows) zu verwenden, laden Sie bitte die neueste Version von Download GNU Octave herunter . Sie können die angegebenen Installationsanweisungen für Ihre Maschine überprüfen.

Die MATLAB-Umgebung verhält sich wie ein superkomplexer Taschenrechner. Sie können Befehle an der >> Eingabeaufforderung eingeben.

MATLAB ist eine interpretierte Umgebung. Mit anderen Worten, Sie geben einen Befehl und MATLAB führt ihn sofort aus.

Praktische Übung

Geben Sie einen gültigen Ausdruck ein, z.

5 + 5

Und drücken Sie ENTER

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt MATLAB diese sofort aus und das zurückgegebene Ergebnis lautet:

ans = 10

Nehmen wir noch einige Beispiele auf -

3 ^ 2	       % 3 raised to the power of 2

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt MATLAB diese sofort aus und das zurückgegebene Ergebnis lautet:

ans = 9

Ein anderes Beispiel,

sin(pi /2)	  % sine of angle 90o

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt MATLAB diese sofort aus und das zurückgegebene Ergebnis lautet:

ans = 1

Ein anderes Beispiel,

7/0		      % Divide by zero

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt MATLAB diese sofort aus und das zurückgegebene Ergebnis lautet:

ans = Inf
warning: division by zero

Ein anderes Beispiel,

732 * 20.3

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt MATLAB diese sofort aus und das zurückgegebene Ergebnis lautet:

ans =  1.4860e+04

MATLAB bietet einige spezielle Ausdrücke für einige mathematische Symbole, wie pi für π, Inf für ∞, i (und j) für √-1 usw. Nan steht für 'keine Zahl'.

Verwendung von Semikolon (;) in MATLAB

Semikolon (;) zeigt das Ende der Anweisung an. Wenn Sie jedoch die MATLAB-Ausgabe für einen Ausdruck unterdrücken und ausblenden möchten, fügen Sie nach dem Ausdruck ein Semikolon hinzu.

Zum Beispiel,

x = 3;
y = x + 5

Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt MATLAB diese sofort aus und das zurückgegebene Ergebnis lautet:

y =  8

Kommentare hinzufügen

Das Prozentzeichen (%) wird zur Angabe einer Kommentarzeile verwendet. Zum Beispiel,

x = 9	     % assign the value 9 to x

Sie können einen Kommentarblock auch mit den Blockkommentaroperatoren% {und%} schreiben.

Der MATLAB-Editor enthält Tools und Kontextmenüelemente, mit denen Sie das Format von Kommentaren hinzufügen, entfernen oder ändern können.

Häufig verwendete Operatoren und Sonderzeichen

MATLAB unterstützt die folgenden häufig verwendeten Operatoren und Sonderzeichen:

Operator Zweck
+ Plus; Additionsoperator.
- Minus; Subtraktionsoperator.
* Skalar- und Matrixmultiplikationsoperator.
.* Array-Multiplikationsoperator.
^ Skalar- und Matrixexponentiationsoperator.
.^ Array-Exponentiationsoperator.
\ Operator der linken Division.
/ Rechtsteilungsoperator.
.\ Array-Linksteilungsoperator.
./ Array-Rechtsteilungsoperator.
: Doppelpunkt; Erzeugt Elemente mit regelmäßigem Abstand und repräsentiert eine ganze Zeile oder Spalte.
( ) Klammern; schließt Funktionsargumente und Array-Indizes ein; überschreibt die Priorität.
[ ] Klammern; Gehäuse Array-Elemente.
. Komma.
Ellipse; Zeilenfortsetzungsoperator
, Komma; trennt Anweisungen und Elemente in einer Reihe
; Semikolon; trennt Spalten und unterdrückt die Anzeige.
% Prozentzeichen; bezeichnet einen Kommentar und gibt die Formatierung an.
_ Anführungszeichen und Transponierungsoperator.
._ Nicht konjugierter Transponierungsoperator.
= Aufgabenverwalter.

Spezielle Variablen und Konstanten

MATLAB unterstützt die folgenden speziellen Variablen und Konstanten:

Name Bedeutung
ans Letzte Antwort.
eps Genauigkeit der Gleitkommapräzision.
i,j Die imaginäre Einheit √-1.
Inf Unendlichkeit.
NaN Undefiniertes numerisches Ergebnis (keine Zahl).
pi Die Zahl π

Variablen benennen

Variablennamen bestehen aus einem Buchstaben, gefolgt von einer beliebigen Anzahl von Buchstaben, Ziffern oder Unterstrichen.

MATLAB ist case-sensitive.

Variablennamen können beliebig lang sein. MATLAB verwendet jedoch nur die ersten N Zeichen, wobei N durch die Funktion angegeben wird namelengthmax.

Speichern Sie Ihre Arbeit

Das save Mit dem Befehl werden alle Variablen im Arbeitsbereich als Datei mit der Erweiterung .mat im aktuellen Verzeichnis gespeichert.

Zum Beispiel,

save myfile

Sie können die Datei jederzeit später mit dem neu laden load Befehl.

load myfile

In der MATLAB-Umgebung ist jede Variable ein Array oder eine Matrix.

Sie können Variablen auf einfache Weise zuweisen. Zum Beispiel,

x = 3	       % defining x and initializing it with a value

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

x = 3

Es erstellt eine 1-mal-1-Matrix mit dem Namen x und speichert den Wert 3 in seinem Element. Lassen Sie uns ein anderes Beispiel überprüfen,

x = sqrt(16) 	% defining x and initializing it with an expression

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

x = 4

Bitte beachten Sie, dass -

  • Sobald eine Variable in das System eingegeben wurde, können Sie später darauf zurückgreifen.

  • Variablen müssen Werte haben, bevor sie verwendet werden.

  • Wenn ein Ausdruck ein Ergebnis zurückgibt, das keiner Variablen zugewiesen ist, weist das System es einer Variablen mit dem Namen ans zu, die später verwendet werden kann.

Zum Beispiel,

sqrt(78)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =  8.8318

Sie können diese Variable verwenden ans - -

sqrt(78);
9876/ans

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =  1118.2

Schauen wir uns ein anderes Beispiel an -

x = 7 * 8;
y = x * 7.89

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

y =  441.84

Mehrere Aufgaben

Sie können mehrere Zuordnungen in derselben Zeile haben. Zum Beispiel,

a = 2; b = 7; c = a * b

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

c = 14

Ich habe die Variablen vergessen!

Das who Befehl zeigt alle von Ihnen verwendeten Variablennamen an.

who

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

Your variables are:
a    ans  b    c

Das whos Befehl zeigt wenig mehr über die Variablen -

  • Derzeit im Speicher befindliche Variablen
  • Typ jeder Variablen
  • Jeder Variablen zugewiesener Speicher
  • Ob es sich um komplexe Variablen handelt oder nicht
whos

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

Attr Name        Size        Bytes      Class
==== ====        ====        ====       ===== 
   a             1x1           8        double
   ans           1x70         757        cell
   b             1x1           8        double
   c             1x1           8        double

Total is 73 elements using 781 bytes

Das clear Befehl löscht alle (oder die angegebenen) Variablen aus dem Speicher.

clear x     % it will delete x, won't display anything
clear       % it will delete all variables in the workspace
            %  peacefully and unobtrusively

Lange Aufgaben

Lange Zuweisungen können mithilfe von Ellipsen (...) auf eine andere Zeile erweitert werden. Zum Beispiel,

initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * time

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

final_velocity = 196

Der Formatbefehl

Standardmäßig zeigt MATLAB Zahlen mit vier Dezimalstellenwerten an. Dies ist bekannt alsshort format.

Wenn Sie jedoch mehr Präzision wünschen, müssen Sie die verwenden format Befehl.

Das format long Befehl zeigt 16 Nachkommastellen an.

Zum Beispiel -

format long
x = 7 + 10/3 + 5 ^ 1.2

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück

x = 17.2319816406394

Ein anderes Beispiel,

format short
x = 7 + 10/3 + 5 ^ 1.2

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

x = 17.232

Das format bankBefehl rundet Zahlen auf zwei Dezimalstellen. Zum Beispiel,

format bank
daily_wage = 177.45;
weekly_wage = daily_wage * 6

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

weekly_wage = 1064.70

MATLAB zeigt große Zahlen in Exponentialschreibweise an.

Das format short e Befehl ermöglicht die Anzeige in Exponentialform mit vier Dezimalstellen plus Exponent.

Zum Beispiel,

format short e
4.678 * 4.9

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans = 2.2922e+01

Das format long eBefehl ermöglicht die Anzeige in Exponentialform mit vier Dezimalstellen plus Exponent. Zum Beispiel,

format long e
x = pi

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

x = 3.141592653589793e+00

Das format ratBefehl gibt den nächsten rationalen Ausdruck an, der sich aus einer Berechnung ergibt. Zum Beispiel,

format rat
4.678 * 4.9

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans = 34177/1491

Vektoren erstellen

Ein Vektor ist eine eindimensionale Anordnung von Zahlen. Mit MATLAB können zwei Arten von Vektoren erstellt werden:

  • Zeilenvektoren
  • Spaltenvektoren

Row vectors werden erstellt, indem die Elementmenge in eckige Klammern gesetzt wird und die Elemente durch Leerzeichen oder Komma begrenzt werden.

Zum Beispiel,

r = [7 8 9 10 11]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

r =

   7    8    9   10   11

Ein anderes Beispiel,

r = [7 8 9 10 11];
t = [2, 3, 4, 5, 6];
res = r + t

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

res =

         9         11         13         15         17

Column vectors werden erstellt, indem die Elementmenge in eckige Klammern gesetzt wird und die Elemente durch Semikolon (;) begrenzt werden.

c = [7;  8;  9;  10; 11]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

c =
       7       
       8       
       9       
      10       
      11

Matrizen erstellen

Eine Matrix ist eine zweidimensionale Anordnung von Zahlen.

In MATLAB wird eine Matrix erstellt, indem jede Zeile als Folge von durch Leerzeichen oder Kommas getrennten Elementen eingegeben wird. Das Ende einer Zeile wird durch ein Semikolon abgegrenzt. Lassen Sie uns zum Beispiel eine 3-mal-3-Matrix erstellen als -

m = [1 2 3; 4 5 6; 7 8 9]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

m =
       1              2              3       
       4              5              6       
       7              8              9

MATLAB ist ein interaktives Programm zur numerischen Berechnung und Datenvisualisierung. Sie können einen Befehl eingeben, indem Sie ihn an der MATLAB-Eingabeaufforderung '>>' auf der Seite eingebenCommand Window.

In diesem Abschnitt finden Sie Listen häufig verwendeter allgemeiner MATLAB-Befehle.

Befehle zum Verwalten einer Sitzung

MATLAB bietet verschiedene Befehle zum Verwalten einer Sitzung. Die folgende Tabelle enthält alle diese Befehle -

Befehl Zweck
clc Löscht das Befehlsfenster.
klar Entfernt Variablen aus dem Speicher.
existieren Überprüft, ob eine Datei oder Variable vorhanden ist.
global Deklariert Variablen als global.
Hilfe Sucht nach einem Hilfethema.
suchen Durchsucht Hilfeeinträge nach einem Schlüsselwort.
Verlassen Stoppt MATLAB.
Wer Listet aktuelle Variablen auf.
wer Listet aktuelle Variablen auf (lange Anzeige).

Befehle zum Arbeiten mit dem System

MATLAB bietet verschiedene nützliche Befehle für die Arbeit mit dem System, z. B. das Speichern der aktuellen Arbeit im Arbeitsbereich als Datei und das spätere Laden der Datei.

Es bietet auch verschiedene Befehle für andere systembezogene Aktivitäten wie das Anzeigen des Datums, das Auflisten von Dateien im Verzeichnis, das Anzeigen des aktuellen Verzeichnisses usw.

In der folgenden Tabelle werden einige häufig verwendete systembezogene Befehle angezeigt.

Befehl Zweck
CD Ändert das aktuelle Verzeichnis.
Datum Zeigt das aktuelle Datum an.
löschen Löscht eine Datei.
Tagebuch Schaltet die Aufzeichnung von Tagebuchdateien ein / aus.
dir Listet alle Dateien im aktuellen Verzeichnis auf.
Belastung Lädt Arbeitsbereichsvariablen aus einer Datei.
Pfad Zeigt den Suchpfad an.
pwd Zeigt das aktuelle Verzeichnis an.
sparen Speichert Arbeitsbereichsvariablen in einer Datei.
Art Zeigt den Inhalt einer Datei an.
Was Listet alle MATLAB-Dateien im aktuellen Verzeichnis auf.
wklread Liest die .wk1-Tabellenkalkulationsdatei.

Eingabe- und Ausgabebefehle

MATLAB bietet die folgenden ein- und ausgabebezogenen Befehle:

Befehl Zweck
disp Zeigt den Inhalt eines Arrays oder einer Zeichenfolge an.
fscanf Lesen Sie formatierte Daten aus einer Datei.
Format Steuert das Bildschirmanzeigeformat.
fprintf Führt formatierte Schreibvorgänge auf dem Bildschirm oder in der Datei durch.
Eingang Zeigt Eingabeaufforderungen an und wartet auf Eingabe.
;; Unterdrückt Siebdruck.

Das fscanf und fprintfBefehle verhalten sich wie C scanf- und printf-Funktionen. Sie unterstützen die folgenden Formatcodes:

Code formatieren Zweck
%s Format als Zeichenfolge.
%d Formatieren Sie als Ganzzahl.
%f Format als Gleitkommawert.
%e Format als Gleitkommawert in wissenschaftlicher Notation.
%g Format in der kompaktesten Form:% f oder% e.
\n Fügen Sie eine neue Zeile in die Ausgabezeichenfolge ein.
\t Fügen Sie eine Registerkarte in die Ausgabezeichenfolge ein.

Die Formatierungsfunktion hat die folgenden Formen, die für die numerische Anzeige verwendet werden:

Formatierungsfunktion Anzeige bis zu
Format kurz Vier Dezimalstellen (Standard).
Format lang 16 Dezimalstellen.
Format kurz e Fünf Ziffern plus Exponent.
Format lang e 16 Stellen plus Exponenten.
Format Bank Zwei Dezimalstellen.
Format + Positiv, negativ oder Null.
Format Ratte Rationale Annäherung.
Format kompakt Unterdrückt einige Zeilenvorschübe.
Format lose Wird in den weniger kompakten Anzeigemodus zurückgesetzt.

Vektor-, Matrix- und Array-Befehle

Die folgende Tabelle zeigt verschiedene Befehle zum Arbeiten mit Arrays, Matrizen und Vektoren.

Befehl Zweck
Katze Verkettet Arrays.
finden Findet Indizes von Elementen ungleich Null.
Länge Berechnet die Anzahl der Elemente.
Linspace Erstellt regelmäßig beabstandete Vektoren.
Logspace Erstellt einen logarithmisch beabstandeten Vektor.
max Gibt das größte Element zurück.
Mindest Gibt das kleinste Element zurück.
prod Produkt jeder Spalte.
umformen Ändert die Größe.
Größe Berechnet die Arraygröße.
Sortieren Sortiert jede Spalte.
Summe Summiert jede Spalte.
Auge Erstellt eine Identitätsmatrix.
Einsen Erstellt eine Reihe von Einsen.
Nullen Erstellt ein Array von Nullen.
Kreuz Berechnet Matrixkreuzprodukte.
Punkt Berechnet Matrixpunktprodukte.
det Berechnet die Determinante eines Arrays.
inv Berechnet die Inverse einer Matrix.
pinv Berechnet die Pseudoinverse einer Matrix.
Rang Berechnet den Rang einer Matrix.
rref Berechnet die reduzierte Reihenebenenform.
Zelle Erstellt ein Zellenarray.
celldisp Zeigt das Zellenarray an.
Zellplot Zeigt eine grafische Darstellung des Zellenarrays an.
num2cell Konvertiert ein numerisches Array in ein Zellenarray.
Deal Entspricht den Eingabe- und Ausgabelisten.
iscell Identifiziert das Zellenarray.

Befehle zeichnen

MATLAB bietet zahlreiche Befehle zum Zeichnen von Diagrammen. Die folgende Tabelle zeigt einige der häufig verwendeten Befehle zum Zeichnen -

Befehl Zweck
Achse Legt die Achsengrenzen fest.
fplot Intelligentes Zeichnen von Funktionen.
Gitter Zeigt Gitterlinien an.
Handlung Erzeugt einen xy-Plot.
drucken Druckt den Plot oder speichert den Plot in einer Datei.
Titel Setzt Text oben auf das Diagramm.
xlabel Fügt der x-Achse eine Textbeschriftung hinzu.
ylabel Fügt der y-Achse eine Textbeschriftung hinzu.
Achsen Erstellt Achsenobjekte.
schließen Schließt das aktuelle Diagramm.
alle schließen Schließt alle Diagramme.
Zahl Öffnet ein neues Figurenfenster.
gtext Aktiviert die Platzierung von Etiketten per Maus.
halt Friert die aktuelle Handlung ein.
Legende Legendenplatzierung mit der Maus.
Aktualisierung Zeichnet das aktuelle Figurenfenster neu.
einstellen Gibt Eigenschaften von Objekten wie Achsen an.
Nebenhandlung Erstellt Diagramme in Unterfenstern.
Text Platziert die Zeichenfolge in der Abbildung.
Bar Erstellt ein Balkendiagramm.
loglog Erstellt ein Protokoll-Protokoll-Diagramm.
Polar- Erstellt eine Polarkurve.
semilogx Erstellt ein Semilog-Diagramm. (logarithmische Abszisse).
Semilogie Erstellt ein Semilog-Diagramm. (logarithmische Ordinate).
Treppe Erstellt ein Treppenhaus.
Stengel Erstellt ein Stammdiagramm.

Bisher haben wir die MATLAB-Umgebung als Taschenrechner verwendet. MATLAB ist jedoch auch eine leistungsstarke Programmiersprache sowie eine interaktive Computerumgebung.

In den vorherigen Kapiteln haben Sie gelernt, wie Sie Befehle über die MATLAB-Eingabeaufforderung eingeben. Mit MATLAB können Sie auch eine Reihe von Befehlen in eine Datei schreiben und die Datei als vollständige Einheit ausführen, z. B. eine Funktion schreiben und aufrufen.

Die M-Dateien

MATLAB ermöglicht das Schreiben von zwei Arten von Programmdateien -

  • Scripts - Skriptdateien sind Programmdateien mit .m extension. In diese Dateien schreiben Sie eine Reihe von Befehlen, die Sie gemeinsam ausführen möchten. Skripte akzeptieren keine Eingaben und geben keine Ausgaben zurück. Sie verarbeiten Daten im Arbeitsbereich.

  • Functions - Funktionsdateien sind auch Programmdateien mit .m extension. Funktionen können Eingaben akzeptieren und Ausgaben zurückgeben. Interne Variablen sind lokal für die Funktion.

Sie können den MATLAB-Editor oder einen anderen Texteditor verwenden, um Ihre zu erstellen .mDateien. In diesem Abschnitt werden die Skriptdateien erläutert. Eine Skriptdatei enthält mehrere aufeinanderfolgende Zeilen mit MATLAB-Befehlen und Funktionsaufrufen. Sie können ein Skript ausführen, indem Sie seinen Namen in die Befehlszeile eingeben.

Erstellen und Ausführen einer Skriptdatei

Um Skriptdateien zu erstellen, müssen Sie einen Texteditor verwenden. Sie können den MATLAB-Editor auf zwei Arten öffnen:

  • Verwenden der Eingabeaufforderung
  • Verwenden der IDE

Wenn Sie die Eingabeaufforderung verwenden, geben Sie ein editin der Eingabeaufforderung. Dies öffnet den Editor. Sie können direkt eingebenedit und dann den Dateinamen (mit der Erweiterung .m)

edit 
Or
edit <filename>

Mit dem obigen Befehl wird die Datei im Standardverzeichnis von MATLAB erstellt. Wenn Sie alle Programmdateien in einem bestimmten Ordner speichern möchten, müssen Sie den gesamten Pfad angeben.

Lassen Sie uns einen Ordner mit dem Namen progs erstellen. Geben Sie die folgenden Befehle an der Eingabeaufforderung ein (>>) -

mkdir progs    % create directory progs under default directory
chdir progs    % changing the current directory to progs
edit  prog1.m  % creating an m file named prog1.m

Wenn Sie die Datei zum ersten Mal erstellen, werden Sie von MATLAB aufgefordert, sie zu bestätigen. Klicken Sie auf Ja.

Wenn Sie die IDE verwenden, wählen Sie alternativ NEU -> Skript. Dadurch wird auch der Editor geöffnet und eine Datei mit dem Namen Ohne Titel erstellt. Sie können die Datei benennen und speichern, nachdem Sie den Code eingegeben haben.

Geben Sie den folgenden Code in den Editor ein -

NoOfStudents = 6000;
TeachingStaff = 150;
NonTeachingStaff = 20;
Total = NoOfStudents + TeachingStaff ...
   + NonTeachingStaff;
disp(Total);

Nachdem Sie die Datei erstellt und gespeichert haben, können Sie sie auf zwei Arten ausführen:

  • Klicken Sie auf die Run Schaltfläche im Editorfenster oder

  • Geben Sie einfach den Dateinamen (ohne Erweiterung) in die Eingabeaufforderung ein: >> prog1

Die Eingabeaufforderung des Befehlsfensters zeigt das Ergebnis an -

6170

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

a = 5; b = 7;
c = a + b
d = c + sin(b)
e = 5 * d
f = exp(-d)

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

c =  12
d =  12.657
e =  63.285
f =    3.1852e-06

MATLAB erfordert keine Typdeklaration oder Dimensionsanweisungen. Immer wenn MATLAB auf einen neuen Variablennamen stößt, erstellt es die Variable und weist den entsprechenden Speicherplatz zu.

Wenn die Variable bereits vorhanden ist, ersetzt MATLAB den ursprünglichen Inhalt durch neuen Inhalt und weist bei Bedarf neuen Speicherplatz zu.

Zum Beispiel,

Total = 42

Die obige Anweisung erstellt eine 1-zu-1-Matrix mit dem Namen 'Total' und speichert den Wert 42 darin.

In MATLAB verfügbare Datentypen

MATLAB bietet 15 grundlegende Datentypen. Jeder Datentyp speichert Daten in Form einer Matrix oder eines Arrays. Die Größe dieser Matrix oder dieses Arrays beträgt mindestens 0 mal 0, und dies kann zu einer Matrix oder einem Array beliebiger Größe führen.

Die folgende Tabelle zeigt die am häufigsten verwendeten Datentypen in MATLAB -

Sr.Nr. Datentyp & Beschreibung
1

int8

8-Bit-Ganzzahl mit Vorzeichen

2

uint8

8-Bit-Ganzzahl ohne Vorzeichen

3

int16

16-Bit-Ganzzahl mit Vorzeichen

4

uint16

16-Bit-Ganzzahl ohne Vorzeichen

5

int32

32-Bit-Ganzzahl mit Vorzeichen

6

uint32

32-Bit-Ganzzahl ohne Vorzeichen

7

int64

64-Bit-Ganzzahl mit Vorzeichen

8

uint64

64-Bit-Ganzzahl ohne Vorzeichen

9

single

numerische Daten mit einfacher Genauigkeit

10

double

numerische Daten mit doppelter Genauigkeit

11

logical

logische Werte von 1 oder 0 stehen für wahr bzw. falsch

12

char

Zeichendaten (Zeichenfolgen werden als Zeichenvektor gespeichert)

13

cell array

Array indizierter Zellen, von denen jede ein Array mit einer anderen Dimension und einem anderen Datentyp speichern kann

14

structure

C-ähnliche Strukturen, wobei jede Struktur benannte Felder aufweist, in denen ein Array mit einer anderen Dimension und einem anderen Datentyp gespeichert werden kann

15

function handle

Zeiger auf eine Funktion

16

user classes

Objekte, die aus einer benutzerdefinierten Klasse erstellt wurden

17

java classes

Objekte, die aus einer Java-Klasse erstellt wurden

Beispiel

Erstellen Sie eine Skriptdatei mit dem folgenden Code:

str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

str = Hello World!
n =  2345
d =  2345
un = 790
rn = 5678.9
c =  5679

Datentypkonvertierung

MATLAB bietet verschiedene Funktionen zum Konvertieren eines Werts von einem Datentyp in einen anderen. Die folgende Tabelle zeigt die Datentypkonvertierungsfunktionen -

Funktion Zweck
verkohlen In Zeichenarray (Zeichenfolge) konvertieren
int2str Ganzzahlige Daten in Zeichenfolge konvertieren
mat2str Konvertieren Sie die Matrix in einen String
num2str Konvertieren Sie die Nummer in eine Zeichenfolge
str2double Konvertieren Sie eine Zeichenfolge in einen Wert mit doppelter Genauigkeit
str2num String in Zahl umwandeln
native2unicode Konvertieren Sie numerische Bytes in Unicode-Zeichen
unicode2native Konvertieren Sie Unicode-Zeichen in numerische Bytes
base2dec Konvertieren Sie die Zeichenfolge der Basis-N-Nummer in eine Dezimalzahl
bin2dec Konvertieren Sie eine Binärzahlzeichenfolge in eine Dezimalzahl
dec2base Konvertieren Sie die Dezimalzahl in die Basis-N-Zahl in der Zeichenfolge
dec2bin Konvertieren Sie die Dezimalzahl in eine Binärzahl in einer Zeichenfolge
dec2hex Konvertieren Sie die Dezimalzahl in eine Hexadezimalzahl in einer Zeichenfolge
hex2dec Konvertieren Sie eine hexadezimale Zeichenfolge in eine Dezimalzahl
hex2num Konvertieren Sie eine hexadezimale Zahlenfolge in eine Zahl mit doppelter Genauigkeit
num2hex Konvertieren Sie Singles und Doubles in IEEE-Hexadezimalzeichenfolgen
cell2mat Konvertieren Sie das Zellenarray in ein numerisches Array
cell2struct Konvertieren Sie das Zellenarray in ein Strukturarray
cellstr Erstellen Sie ein Zellenarray mit Zeichenfolgen aus dem Zeichenarray
mat2cell Konvertieren Sie ein Array in ein Zellenarray mit möglicherweise unterschiedlich großen Zellen
num2cell Konvertieren Sie ein Array in ein Zellenarray mit Zellen mit einheitlicher Größe
struct2cell Struktur in Zellenarray konvertieren

Bestimmung von Datentypen

MATLAB bietet verschiedene Funktionen zum Identifizieren des Datentyps einer Variablen.

Die folgende Tabelle enthält die Funktionen zum Bestimmen des Datentyps einer Variablen -

Funktion Zweck
ist Zustand erkennen
ist ein Bestimmen Sie, ob die Eingabe ein Objekt der angegebenen Klasse ist
iscell Bestimmen Sie, ob die Eingabe ein Zellenarray ist
iscellstr Bestimmen Sie, ob die Eingabe ein Zellenarray von Zeichenfolgen ist
ischar Bestimmen Sie, ob es sich bei dem Element um ein Zeichenarray handelt
isfield Bestimmen Sie, ob die Eingabe ein Strukturarrayfeld ist
isfloat Bestimmen Sie, ob die Eingabe ein Gleitkomma-Array ist
ishghandle True für Handles Graphics-Objekthandles
isinteger Bestimmen Sie, ob die Eingabe ein ganzzahliges Array ist
isjava Bestimmen Sie, ob die Eingabe ein Java-Objekt ist
islogisch Bestimmen Sie, ob die Eingabe ein logisches Array ist
isnumerisch Bestimmen Sie, ob die Eingabe ein numerisches Array ist
isobject Bestimmen Sie, ob die Eingabe ein MATLAB-Objekt ist
ist echt Überprüfen Sie, ob die Eingabe ein echtes Array ist
isscalar Bestimmen Sie, ob die Eingabe skalar ist
isstr Bestimmen Sie, ob die Eingabe ein Zeichenarray ist
isstruct Bestimmen Sie, ob die Eingabe ein Strukturarray ist
isvector Bestimmen Sie, ob die Eingabe ein Vektor ist
Klasse Bestimmen Sie die Objektklasse
validateattributes Überprüfen Sie die Gültigkeit des Arrays
wer Listen Sie Variablen im Arbeitsbereich mit Größen und Typen auf

Beispiel

Erstellen Sie eine Skriptdatei mit dem folgenden Code:

x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
 
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
 
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
 
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =

          1          2          3

ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0

Ein Operator ist ein Symbol, das den Compiler anweist, bestimmte mathematische oder logische Manipulationen durchzuführen. MATLAB wurde entwickelt, um hauptsächlich mit ganzen Matrizen und Arrays zu arbeiten. Daher arbeiten Operatoren in MATLAB sowohl mit skalaren als auch mit nicht skalaren Daten. MATLAB erlaubt die folgenden Arten von Elementaroperationen -

  • Rechenzeichen
  • Vergleichsoperatoren
  • Logische Operatoren
  • Bitweise Operationen
  • Operationen einstellen

Rechenzeichen

MATLAB erlaubt zwei verschiedene Arten von arithmetischen Operationen -

  • Matrixarithmetische Operationen
  • Array-Arithmetikoperationen

Matrixarithmetische Operationen sind dieselben wie in der linearen Algebra definiert. Array-Operationen werden Element für Element sowohl auf eindimensionalen als auch auf mehrdimensionalen Arrays ausgeführt.

Die Matrixoperatoren und Arrayoperatoren werden durch das Punktsymbol (.) Unterscheidet. Da jedoch die Additions- und Subtraktionsoperation für Matrizen und Arrays gleich ist, ist der Operator für beide Fälle gleich. Die folgende Tabelle enthält eine kurze Beschreibung der Bediener -

Beispiele anzeigen

Sr.Nr. Betreiber & Beschreibung
1

+

Addition oder unäres Plus. A + B addiert die in den Variablen A und B gespeicherten Werte. A und B müssen dieselbe Größe haben, es sei denn, einer ist ein Skalar. Ein Skalar kann zu einer Matrix beliebiger Größe hinzugefügt werden.

2

-

Subtraktion oder unäres Minus. AB subtrahiert den Wert von B von A. A und B müssen dieselbe Größe haben, es sei denn, man ist ein Skalar. Ein Skalar kann von einer Matrix beliebiger Größe subtrahiert werden.

3

*

Matrix-Multiplikation. C = A * B ist das lineare algebraische Produkt der Matrizen A und B. Genauer gesagt:

Für nicht skalare A und B muss die Anzahl der Spalten von A gleich der Anzahl der Zeilen von B sein. Ein Skalar kann eine Matrix beliebiger Größe multiplizieren.

4

.*

Array-Multiplikation. A. * B ist das Element-für-Element-Produkt der Arrays A und B. A und B müssen dieselbe Größe haben, es sei denn, eines davon ist ein Skalar.

5

/

Schrägstrich oder Matrix rechts Teilung. B / A ist ungefähr das gleiche wie B * inv (A). Genauer gesagt ist B / A = (A '\ B') '.

6

./

Array rechte Teilung. A./B ist die Matrix mit den Elementen A (i, j) / B (i, j). A und B müssen dieselbe Größe haben, es sei denn, einer von ihnen ist ein Skalar.

7

\

Backslash oder Matrix linke Teilung. Wenn A eine quadratische Matrix ist, ist A \ B ungefähr dasselbe wie inv (A) * B, außer dass es auf eine andere Weise berechnet wird. Wenn A eine n-mal-n - Matrix ist und B ist ein Spaltenvektor mit N Komponenten oder eine Matrix mit mehreren solchen Säulen, dann X = A \ B ist die Lösung für die Gleichung AX = B . Eine Warnmeldung wird angezeigt, wenn A schlecht skaliert oder nahezu singulär ist.

8

.\

Array linke Teilung. A. \ B ist die Matrix mit den Elementen B (i, j) / A (i, j). A und B müssen dieselbe Größe haben, es sei denn, einer von ihnen ist ein Skalar.

9

^

Matrixleistung. X ^ p ist X zur Potenz p, wenn p ein Skalar ist. Wenn p eine ganze Zahl ist, wird die Potenz durch wiederholtes Quadrieren berechnet. Wenn die Ganzzahl negativ ist, wird X zuerst invertiert. Für andere Werte von p beinhaltet die Berechnung Eigenwerte und Eigenvektoren, so dass wenn [V, D] = eig (X), dann X ^ p = V * D. ^ p / V.

10

.^

Array-Leistung. A. ^ B ist die Matrix mit den Elementen A (i, j) zur Potenz B (i, j). A und B müssen dieselbe Größe haben, es sei denn, einer von ihnen ist ein Skalar.

11

'

Matrix transponieren. A 'ist die lineare algebraische Transponierte von A. Für komplexe Matrizen ist dies die komplexe konjugierte Transponierte.

12

.'

Array transponieren. EIN.' ist die Array-Transponierte von A. Für komplexe Matrizen beinhaltet dies keine Konjugation.

Vergleichsoperatoren

Vergleichsoperatoren können auch sowohl skalare als auch nicht skalare Daten bearbeiten. Vergleichsoperatoren für Arrays führen Element-für-Element-Vergleiche zwischen zwei Arrays durch und geben ein logisches Array derselben Größe zurück, wobei Elemente auf logisch 1 (wahr) gesetzt sind, wobei die Beziehung wahr ist, und Elemente auf logisch 0 (falsch) gesetzt sind, wo sie ist nicht.

Die folgende Tabelle zeigt die in MATLAB verfügbaren Vergleichsoperatoren -

Beispiele anzeigen

Sr.Nr. Betreiber & Beschreibung
1

<

Weniger als

2

<=

Gleich oder kleiner als

3

>

Größer als

4

>=

Größer als oder gleich wie

5

==

Gleicht

6

~=

Nicht gleichzusetzen mit

Logische Operatoren

MATLAB bietet zwei Arten von logischen Operatoren und Funktionen:

  • Elementweise - Diese Operatoren bearbeiten entsprechende Elemente logischer Arrays.

  • Kurzschluss - Diese Operatoren arbeiten mit skalaren und logischen Ausdrücken.

Elementweise logische Operatoren arbeiten Element für Element auf logischen Arrays. Die Symbole &, | und ~ sind die logischen Array-Operatoren AND, OR und NOT.

Logische Kurzschlussoperatoren ermöglichen das Kurzschließen logischer Operationen. Die Symbole && und || sind die logischen Kurzschlussoperatoren AND und OR.

Beispiele anzeigen

Bitweise Operationen

Bitweise Operatoren arbeiten an Bits und führen eine bitweise Operation durch. Die Wahrheitstabellen für &, | und ^ lauten wie folgt:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Angenommen, A = 60; und B = 13; Jetzt im Binärformat werden sie wie folgt sein:

A = 0011 1100

B = 0000 1101

-----------------

A & B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

MATLAB bietet verschiedene Funktionen für bitweise Operationen wie 'bitweise und', 'bitweise oder' und 'bitweise nicht' Operationen, Verschiebungsoperationen usw.

Die folgende Tabelle zeigt die häufig verwendeten bitweisen Operationen -

Beispiele anzeigen

Funktion Zweck
Bitand (a, b) Bitweise UND von ganzen Zahlen a und b
bitcmp (a) Bitweise Ergänzung von a
Bitget (a, pos) Holen Sie sich das Bit an der angegebenen Position pos im Integer-Array a
Bitor (a, b) Bitweises ODER der ganzen Zahlen a und b
Bitset (a, pos) Bit an bestimmter Stelle setzen pos von a
Bitverschiebung (a, k) Gibt eine Verschiebung nach links um k Bits zurück, was einer Multiplikation mit 2 k entspricht . Negative Werte von k entsprechen dem Verschieben von Bits nach rechts oder dem Teilen durch 2 | k | und auf die nächste ganze Zahl in Richtung negativer Unendlichkeit runden. Alle Überlaufbits werden abgeschnitten.
Bitxor (a, b) Bitweises XOR der ganzen Zahlen a und b
Swapbytes Byte-Reihenfolge tauschen

Operationen einstellen

MATLAB bietet verschiedene Funktionen für Mengenoperationen wie Vereinigung, Schnittmenge und Testen der Mengenmitgliedschaft usw.

Die folgende Tabelle zeigt einige häufig verwendete Set-Operationen -

Beispiele anzeigen

Sr.Nr. Bedienungsanleitung
1

intersect(A,B)

Schnittpunkt zweier Arrays festlegen; Gibt die Werte zurück, die sowohl A als auch B gemeinsam sind. Die zurückgegebenen Werte sind in sortierter Reihenfolge.

2

intersect(A,B,'rows')

Behandelt jede Zeile von A und jede Zeile von B als einzelne Entitäten und gibt die Zeilen zurück, die sowohl A als auch B gemeinsam sind. Die Zeilen der zurückgegebenen Matrix sind in sortierter Reihenfolge.

3

ismember(A,B)

Gibt ein Array mit der gleichen Größe wie A zurück, das 1 (true) enthält, wobei sich die Elemente von A in B befinden. An anderer Stelle wird 0 (false) zurückgegeben.

4

ismember(A,B,'rows')

Behandelt jede Zeile von A und jede Zeile von B als einzelne Entitäten und gibt einen Vektor zurück, der 1 (wahr) enthält, wobei die Zeilen der Matrix A auch Zeilen von B sind. An anderer Stelle wird 0 (falsch) zurückgegeben.

5

issorted(A)

Gibt die logische 1 (true) zurück, wenn die Elemente von A in sortierter Reihenfolge vorliegen, und ansonsten die logische 0 (false). Eingabe A kann ein Vektor oder ein N-mal-1- oder 1-mal-N-Zellenarray von Strings sein.A is considered to be sorted if A und die Ausgabe von sort (A) sind gleich.

6

issorted(A, 'rows')

Gibt logische 1 (wahr) zurück, wenn die Zeilen der zweidimensionalen Matrix A in sortierter Reihenfolge vorliegen, andernfalls logische 0 (falsch). Matrix A is considered to be sorted if A und die Ausgabe von Sortrows (A) ist gleich.

7

setdiff(A,B)

Legt die Differenz zweier Arrays fest. Gibt die Werte in A zurück, die nicht in B sind. Die Werte im zurückgegebenen Array sind in sortierter Reihenfolge.

8

setdiff(A,B,'rows')

Behandelt jede Zeile von A und jede Zeile von B als einzelne Entitäten und gibt die Zeilen von A zurück, die nicht in B sind. Die Zeilen der zurückgegebenen Matrix sind in sortierter Reihenfolge.

Die Option 'Zeilen' unterstützt keine Zellenarrays.

9

setxor

Legt das exklusive ODER von zwei Arrays fest

10

union

Legt die Vereinigung zweier Arrays fest

11

unique

Eindeutige Werte im Array

Entscheidungsstrukturen erfordern, dass der Programmierer eine oder mehrere Bedingungen angibt, die vom Programm bewertet oder getestet werden sollen, zusammen mit einer Anweisung oder Anweisungen, die ausgeführt werden sollen, wenn die Bedingung als wahr bestimmt wird, und optional andere Anweisungen, die ausgeführt werden sollen, wenn die Bedingung wird als falsch bestimmt.

Es folgt die allgemeine Form einer typischen Entscheidungsstruktur, die in den meisten Programmiersprachen zu finden ist:

MATLAB bietet folgende Arten von Entscheidungserklärungen. Klicken Sie auf die folgenden Links, um deren Details zu überprüfen -

Sr.Nr. Aussage & Beschreibung
1 if ... end Anweisung

Ein if ... end statement besteht aus einem booleschen Ausdruck, gefolgt von einer oder mehreren Anweisungen.

2 if ... else ... end Anweisung

Ein if statement kann von einem optionalen gefolgt werden else statement, wird ausgeführt, wenn der boolesche Ausdruck false ist.

3 If ... elseif ... elseif ... else ... Anweisungen beenden

Ein if Auf die Anweisung kann eine (oder mehrere) optionale Anweisungen folgen elseif... und ein else Aussage, die sehr nützlich ist, um verschiedene Bedingungen zu testen.

4 verschachtelte if-Anweisungen

Sie können eine verwenden if oder elseif Aussage in einem anderen if oder elseif Aussage (n).

5 switch-Anweisung

EIN switch Mit der Anweisung kann eine Variable auf Gleichheit mit einer Liste von Werten getestet werden.

6 verschachtelte switch-Anweisungen

Sie können eine verwenden switch Aussage in einem anderen switch Aussage (n).

Es kann vorkommen, dass Sie einen Codeblock mehrmals ausführen müssen. Im Allgemeinen werden Anweisungen nacheinander ausgeführt. Die erste Anweisung in einer Funktion wird zuerst ausgeführt, gefolgt von der zweiten usw.

Programmiersprachen bieten verschiedene Steuerungsstrukturen, die kompliziertere Ausführungspfade ermöglichen.

Mit einer Schleifenanweisung können wir eine Anweisung oder eine Gruppe von Anweisungen mehrmals ausführen. Im Folgenden wird die allgemeine Form einer Schleifenanweisung in den meisten Programmiersprachen beschrieben:

MATLAB bietet die folgenden Arten von Schleifen, um die Schleifenanforderungen zu erfüllen. Klicken Sie auf die folgenden Links, um deren Details zu überprüfen -

Sr.Nr. Schleifentyp & Beschreibung
1 while-Schleife

Wiederholt eine Anweisung oder eine Gruppe von Anweisungen, während eine bestimmte Bedingung erfüllt ist. Es testet die Bedingung, bevor der Schleifenkörper ausgeführt wird.

2 für Schleife

Führt eine Folge von Anweisungen mehrmals aus und verkürzt den Code, der die Schleifenvariable verwaltet.

3 verschachtelte Schleifen

Sie können eine oder mehrere Schleifen in einer anderen Schleife verwenden.

Schleifensteuerungsanweisungen

Schleifensteueranweisungen ändern die Ausführung von ihrer normalen Reihenfolge. Wenn die Ausführung einen Bereich verlässt, werden alle automatischen Objekte, die in diesem Bereich erstellt wurden, zerstört.

MATLAB unterstützt die folgenden Steueranweisungen. Klicken Sie auf die folgenden Links, um deren Details zu überprüfen.

Sr.Nr. Steueranweisung & Beschreibung
1 break-Anweisung

Beendet die loop Anweisung und überträgt die Ausführung an die Anweisung unmittelbar nach der Schleife.

2 Aussage fortsetzen

Bewirkt, dass die Schleife den Rest ihres Körpers überspringt und ihren Zustand sofort erneut testet, bevor sie wiederholt wird.

Ein Vektor ist eine eindimensionale Anordnung von Zahlen. Mit MATLAB können zwei Arten von Vektoren erstellt werden:

  • Zeilenvektoren
  • Spaltenvektoren

Zeilenvektoren

Row vectors werden erstellt, indem die Elementmenge in eckige Klammern gesetzt wird und die Elemente durch Leerzeichen oder Komma begrenzt werden.

r = [7 8 9 10 11]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

r =

   7    8    9   10   11

Spaltenvektoren

Column vectors werden erstellt, indem die Elementmenge in eckige Klammern eingeschlossen wird und die Elemente durch Semikolon begrenzt werden.

c = [7;  8;  9;  10; 11]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

c =
      7       
      8       
      9       
      10       
      11

Referenzieren der Elemente eines Vektors

Sie können auf verschiedene Arten auf eines oder mehrere Elemente eines Vektors verweisen. Die i- te Komponente eines Vektors v wird als v (i) bezeichnet. Zum Beispiel -

v = [ 1; 2; 3; 4; 5; 6];	% creating a column vector of 6 elements
v(3)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =  3

Wenn Sie auf einen Vektor mit einem Doppelpunkt wie v (:) verweisen, werden alle Komponenten des Vektors aufgelistet.

v = [ 1; 2; 3; 4; 5; 6];	% creating a column vector of 6 elements
v(:)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
     1
     2
     3
     4
     5
     6

Mit MATLAB können Sie eine Reihe von Elementen aus einem Vektor auswählen.

Lassen Sie uns zum Beispiel einen Zeilenvektor rv von 9 Elementen erstellen , dann werden wir die Elemente 3 bis 7 durch Schreiben referenzierenrv(3:7)und erstellen Sie einen neuen Vektor mit dem Namen sub_rv .

rv = [1 2 3 4 5 6 7 8 9];
sub_rv = rv(3:7)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

sub_rv =

   3   4   5   6   7

Vektoroperationen

Lassen Sie uns in diesem Abschnitt die folgenden Vektoroperationen diskutieren:

  • Addition und Subtraktion von Vektoren

  • Skalare Multiplikation von Vektoren

  • Transponieren eines Vektors

  • Anhängen von Vektoren

  • Größe eines Vektors

  • Vektor-Punkt-Produkt

  • Vektoren mit gleichmäßig verteilten Elementen

Eine Matrix ist eine zweidimensionale Anordnung von Zahlen.

In MATLAB erstellen Sie eine Matrix, indem Sie Elemente in jeder Zeile als durch Kommas oder Leerzeichen getrennte Zahlen eingeben und das Ende jeder Zeile mit Semikolons markieren.

Lassen Sie uns zum Beispiel eine 4-mal-5-Matrix erstellen a -

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

a =
      1     2     3     4     5
      2     3     4     5     6
      3     4     5     6     7
      4     5     6     7     8

Referenzieren der Elemente einer Matrix

Um auf ein Element in der m- ten Zeile und der n- ten Spalte einer Matrix mx zu verweisen , schreiben wir -

mx(m, n);

Zum Beispiel wird in den 2 mit dem Elemente beziehen nd Reihen und 5 - ten Spalte der Matrix ein , wie in dem letzten Abschnitt erstellt, geben wir -

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(2,5)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =  6

Um auf alle Elemente in der m- ten Spalte zu verweisen, geben wir A (:, m) ein.

Lassen Sie uns einen Spaltenvektor v erstellen, aus den Elementen der 4 - ten Reihe der Matrix a -

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
v = a(:,4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

v =
      4
      5
      6
      7

Sie können auch die Elemente in der m- ten bis n- ten Spalte auswählen , dafür schreiben wir -

a(:,m:n)

Lassen Sie uns eine kleinere Matrix erstellen, die die Elemente aus der zweiten und dritten Spalte übernimmt -

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
      2     3
      3     4
      4     5
      5     6

Auf die gleiche Weise können Sie eine Untermatrix erstellen, die einen Teil einer Matrix enthält.

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
      2     3
      3     4
      4     5
      5     6

Auf die gleiche Weise können Sie eine Untermatrix erstellen, die einen Teil einer Matrix enthält.

Lassen Sie uns zum Beispiel eine Submatrix sa erstellen, die den inneren Teil von a - nimmt

3     4     5     
4     5     6

Schreiben Sie dazu -

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
sa = a(2:3,2:4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

sa =
      3     4     5
      4     5     6

Löschen einer Zeile oder Spalte in einer Matrix

Sie können eine ganze Zeile oder Spalte einer Matrix löschen, indem Sie dieser Zeile oder Spalte einen leeren Satz eckiger Klammern [] zuweisen. Grundsätzlich bezeichnet [] ein leeres Array.

Löschen wir zum Beispiel die vierte Zeile eines -

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a( 4 , : ) = []

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

a =
      1     2     3     4     5
      2     3     4     5     6
      3     4     5     6     7

Als nächstes löschen wir die fünfte Spalte von a -

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(: , 5)=[]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

a =
      1     2     3     4
      2     3     4     5
      3     4     5     6
      4     5     6     7

Beispiel

In diesem Beispiel erstellen wir eine 3-mal-3-Matrix m. Anschließend kopieren wir die zweite und dritte Zeile dieser Matrix zweimal, um eine 4-mal-3-Matrix zu erstellen.

Erstellen Sie eine Skriptdatei mit dem folgenden Code:

a = [ 1 2 3 ; 4 5 6; 7 8 9];
new_mat = a([2,3,2,3],:)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

new_mat =
      4     5     6
      7     8     9
      4     5     6
      7     8     9

Matrixoperationen

Lassen Sie uns in diesem Abschnitt die folgenden grundlegenden und häufig verwendeten Matrixoperationen diskutieren:

  • Addition und Subtraktion von Matrizen

  • Aufteilung der Matrizen

  • Skalare Operationen von Matrizen

  • Transponieren einer Matrix

  • Verketten von Matrizen

  • Matrix-Multiplikation

  • Determinante einer Matrix

  • Inverse einer Matrix

Alle Variablen aller Datentypen in MATLAB sind mehrdimensionale Arrays. Ein Vektor ist ein eindimensionales Array und eine Matrix ist ein zweidimensionales Array.

Wir haben bereits Vektoren und Matrizen diskutiert. In diesem Kapitel werden mehrdimensionale Arrays behandelt. Lassen Sie uns jedoch zuvor einige spezielle Arten von Arrays diskutieren.

Spezielle Arrays in MATLAB

In diesem Abschnitt werden einige Funktionen erläutert, mit denen spezielle Arrays erstellt werden. Für alle diese Funktionen erstellt ein einzelnes Argument ein quadratisches Array, doppelte Argumente ein rechteckiges Array.

Das zeros() Funktion erstellt ein Array aller Nullen -

Zum Beispiel -

zeros(5)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
      0     0     0     0     0
      0     0     0     0     0
      0     0     0     0     0
      0     0     0     0     0
      0     0     0     0     0

Das ones() Funktion erstellt ein Array von allen -

Zum Beispiel -

ones(4,3)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
      1     1     1
      1     1     1
      1     1     1
      1     1     1

Das eye() Funktion erstellt eine Identitätsmatrix.

Zum Beispiel -

eye(4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
      1     0     0     0
      0     1     0     0
      0     0     1     0
      0     0     0     1

Das rand() Funktion erstellt ein Array von gleichmäßig verteilten Zufallszahlen auf (0,1) -

Zum Beispiel -

rand(3, 5)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   0.8147    0.9134    0.2785    0.9649    0.9572
   0.9058    0.6324    0.5469    0.1576    0.4854
   0.1270    0.0975    0.9575    0.9706    0.8003

Ein magisches Quadrat

EIN magic square ist ein Quadrat, das dieselbe Summe erzeugt, wenn seine Elemente zeilenweise, spaltenweise oder diagonal hinzugefügt werden.

Das magic()Funktion erstellt ein magisches Quadrat-Array. Es braucht ein einzelnes Argument, das die Größe des Quadrats angibt. Das Argument muss ein Skalar größer oder gleich 3 sein.

magic(4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   16     2     3    13
   5    11    10     8
   9     7     6    12
   4    14    15     1

Mehrdimensionale Arrays

Ein Array mit mehr als zwei Dimensionen wird in MATLAB als mehrdimensionales Array bezeichnet. Mehrdimensionale Arrays in MATLAB sind eine Erweiterung der normalen zweidimensionalen Matrix.

Um ein mehrdimensionales Array zu generieren, erstellen wir im Allgemeinen zunächst ein zweidimensionales Array und erweitern es.

Erstellen wir beispielsweise ein zweidimensionales Array a.

a = [7 9 5; 6 1 9; 4 3 2]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

a =
   7     9     5
   6     1     9
   4     3     2

Das Array a ist ein 3-mal-3-Array; wir können eine dritte Dimension hinzuzufügen ein , indem Sie die Werte wie die Bereitstellung -

a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

a =

ans(:,:,1) =

   0   0   0
   0   0   0
   0   0   0

ans(:,:,2) =

   1   2   3
   4   5   6
   7   8   9

Wir können auch mehrdimensionale Arrays mit den Funktionen Einsen (), Nullen () oder Rand () erstellen.

Zum Beispiel,

b = rand(4,3,2)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

b(:,:,1) =
   0.0344    0.7952    0.6463
   0.4387    0.1869    0.7094
   0.3816    0.4898    0.7547
   0.7655    0.4456    0.2760

b(:,:,2) =
   0.6797    0.4984    0.2238
   0.6551    0.9597    0.7513
   0.1626    0.3404    0.2551
   0.1190    0.5853    0.5060

Wir können auch die verwenden cat()Funktion zum Erstellen mehrdimensionaler Arrays. Es verkettet eine Liste von Arrays entlang einer bestimmten Dimension -

Die Syntax für die Funktion cat () lautet -

B = cat(dim, A1, A2...)

Wo,

  • B ist das neu erstellte Array

  • A1 , A2 , ... sind die zu verkettenden Arrays

  • dim ist die Dimension, entlang der die Arrays verkettet werden sollen

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])

Wenn Sie die Datei ausführen, wird Folgendes angezeigt:

c(:,:,1) =
      9     8     7
      6     5     4
      3     2     1
c(:,:,2) =
      1     2     3
      4     5     6
      7     8     9
c(:,:,3) =
      2     3     1
      4     7     8
      3     9     0

Array-Funktionen

MATLAB bietet die folgenden Funktionen zum Sortieren, Drehen, Permutieren, Umformen oder Verschieben von Array-Inhalten.

Funktion Zweck
Länge Länge des Vektors oder der größten Array-Dimension
ndims Anzahl der Array-Dimensionen
numel Anzahl der Array-Elemente
Größe Array-Dimensionen
iscolumn Legt fest, ob die Eingabe ein Spaltenvektor ist
ist leer Legt fest, ob das Array leer ist
Ismatrix Legt fest, ob die Eingabe eine Matrix ist
isrow Bestimmt, ob die Eingabe ein Zeilenvektor ist
isscalar Legt fest, ob die Eingabe skalar ist
isvector Bestimmt, ob die Eingabe ein Vektor ist
blkdiag Konstruiert eine Blockdiagonalmatrix aus Eingabeargumenten
Schaltkreis Verschiebt das Array kreisförmig
ctransponieren Komplexe konjugierte Transponierte
diag Diagonale Matrizen und Diagonalen der Matrix
flipdim Spiegelt das Array entlang der angegebenen Dimension
fliplr Spiegelt die Matrix von links nach rechts
Flipud Dreht die Matrix nach oben und unten
ipermute Invertiert die permutierten Dimensionen des ND-Arrays
permutieren Ordnet die Abmessungen des ND-Arrays neu an
repmat Replikate und Kachelarray
umformen Formt das Array um
rot90 Dreht die Matrix um 90 Grad
shiftdim Verschiebt die Abmessungen
ausgegeben Legt fest, ob festgelegte Elemente in sortierter Reihenfolge sind
Sortieren Sortiert Array-Elemente in aufsteigender oder absteigender Reihenfolge
sortrows Sortiert Zeilen in aufsteigender Reihenfolge
drücken Entfernt Singleton-Dimensionen
transponieren Transponieren
vektorisieren Vektorisiert den Ausdruck

Beispiele

Die folgenden Beispiele veranschaulichen einige der oben genannten Funktionen.

Length, Dimension and Number of elements −

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x)      % length of x vector
y = rand(3, 4, 5, 2);
ndims(y)       % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s)       % no of elements in s

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =  8
ans =  4
ans =  23

Circular Shifting of the Array Elements −

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

a = [1 2 3; 4 5 6; 7 8 9]  % the original array a
b = circshift(a,1)         %  circular shift first dimension values down by 1.
c = circshift(a,[1 -1])    % circular shift first dimension values % down by 1 
                           % and second dimension values to the left % by 1.

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

a =
   1     2     3
   4     5     6
   7     8     9

b =
   7     8     9
   1     2     3
   4     5     6

c =
   8     9     7
   2     3     1
   5     6     4

Arrays sortieren

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

v = [ 23 45 12 9 5 0 19 17]  % horizontal vector
sort(v)                      % sorting v
m = [2 6 4; 5 3 9; 2 0 1]    % two dimensional array
sort(m, 1)                   % sorting m along the row
sort(m, 2)                   % sorting m along the column

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

v =
   23    45    12     9     5     0    19    17
ans =
   0     5     9    12    17    19    23    45
m =
   2     6     4
   5     3     9
   2     0     1
ans =
   2     0     1
   2     3     4
   5     6     9
ans =
   2     4     6
   3     5     9
   0     1     2

Zellenarray

Zellenarrays sind Arrays indizierter Zellen, in denen jede Zelle ein Array mit unterschiedlichen Dimensionen und Datentypen speichern kann.

Das cellFunktion wird zum Erstellen eines Zellenarrays verwendet. Die Syntax für die Zellenfunktion lautet -

C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)

Wo,

  • C ist das Zellenarray;

  • dim ist eine skalare Ganzzahl oder ein Vektor von Ganzzahlen, die die Dimensionen des Zellenarrays C angeben;

  • dim1, ..., dimN sind skalare Ganzzahlen, die die Dimensionen von C angeben.

  • obj ist einer der folgenden -

    • Java-Array oder -Objekt
    • .NET-Array vom Typ System.String oder System.Object

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

c = 
{
   [1,1] = Red
   [2,1] =  1
   [1,2] = Blue
   [2,2] =  2
   [1,3] = Green
   [2,3] =  3
   [1,4] = Yellow
   [2,4] =  4
   [1,5] = White
   [2,5] =  5
}

Zugriff auf Daten in Zellenarrays

Es gibt zwei Möglichkeiten, auf die Elemente eines Zellenarrays zu verweisen:

  • Schließen Sie die Indizes in die erste Klammer () ein, um auf Zellensätze zu verweisen
  • Einschließen der Indizes in Klammern {}, um auf die Daten in einzelnen Zellen zu verweisen

Wenn Sie die Indizes in die erste Klammer einschließen, bezieht sich dies auf die Menge der Zellen.

Zellarray-Indizes in glatten Klammern beziehen sich auf Zellensätze.

Zum Beispiel -

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans = 
{
   [1,1] = Red
   [2,1] =  1
   [1,2] = Blue
   [2,2] =  2
}

Sie können auch auf den Inhalt von Zellen zugreifen, indem Sie mit geschweiften Klammern indizieren.

Zum Beispiel -

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans = Blue
ans = Green
ans = Yellow

Das colon(:)ist einer der nützlichsten Operatoren in MATLAB. Es wird verwendet, um Vektoren, tiefgestellte Arrays und zu erstellenspecify for iterations.

Wenn Sie einen Zeilenvektor erstellen möchten, der Ganzzahlen von 1 bis 10 enthält, schreiben Sie -

1:10

MATLAB führt die Anweisung aus und gibt einen Zeilenvektor zurück, der die Ganzzahlen von 1 bis 10 enthält.

ans =                                                                           
                                                                                
   1    2    3    4    5    6    7    8    9   10

Wenn Sie einen anderen Inkrementwert als einen angeben möchten, z.

100: -5: 50

MATLAB führt die Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   100    95    90    85    80    75    70    65    60    55    50

Nehmen wir ein anderes Beispiel -

0:pi/8:pi

MATLAB führt die Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   Columns 1 through 7
      0    0.3927    0.7854    1.1781    1.5708    1.9635    2.3562
   Columns 8 through 9
      2.7489    3.1416

Mit dem Doppelpunktoperator können Sie einen Vektor von Indizes erstellen, um Zeilen, Spalten oder Elemente von Arrays auszuwählen.

Die folgende Tabelle beschreibt die Verwendung für diesen Zweck (lassen Sie uns eine Matrix A haben) -

Format Zweck
A(:,j) ist die j-te Spalte von A.
A(i,:) ist die i-te Reihe von A.
A(:,:) ist das äquivalente zweidimensionale Array. Für Matrizen ist dies dasselbe wie für A.
A(j:k) ist A (j), A (j + 1), ..., A (k).
A(:,j:k) ist A (:, j), A (:, j + 1), ..., A (:, k).
A(:,:,k) ist die k- te Seite des dreidimensionalen Arrays A.
A(i,j,k,:) ist ein Vektor in einer vierdimensionalen Anordnung A. Der Vektor umfasst A (i, j, k, 1), A (i, j, k, 2), A (i, j, k, 3) und so weiter.
A(:) ist alle Elemente von A, betrachtet als eine einzelne Spalte. Auf der linken Seite einer Zuweisungsanweisung füllt A (:) A aus und behält seine Form von zuvor bei. In diesem Fall muss die rechte Seite die gleiche Anzahl von Elementen wie A enthalten.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

A = [1 2 3 4; 4 5 6 7; 7 8 9 10]
A(:,2)      % second column of A
A(:,2:3)    % second and third column of A
A(2:3,2:3)  % second and third rows and second and third columns

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

A =
      1     2     3     4
      4     5     6     7
      7     8     9    10

ans =
      2
      5
      8

ans =
      2     3
      5     6
      8     9

ans =
      5     6
      8     9

MATLAB unterstützt verschiedene numerische Klassen, darunter vorzeichenbehaftete und vorzeichenlose Ganzzahlen sowie Gleitkommazahlen mit einfacher und doppelter Genauigkeit. Standardmäßig speichert MATLAB alle numerischen Werte als Gleitkommazahlen mit doppelter Genauigkeit.

Sie können eine beliebige Anzahl oder ein beliebiges Array von Zahlen als Ganzzahlen oder als Zahlen mit einfacher Genauigkeit speichern.

Alle numerischen Typen unterstützen grundlegende Array-Operationen und mathematische Operationen.

Konvertierung in verschiedene numerische Datentypen

MATLAB bietet die folgenden Funktionen zum Konvertieren in verschiedene numerische Datentypen:

Funktion Zweck
doppelt Konvertiert in eine Zahl mit doppelter Genauigkeit
Single Konvertiert in eine Zahl mit einfacher Genauigkeit
int8 Konvertiert in eine 8-Bit-Ganzzahl mit Vorzeichen
int16 Konvertiert in eine 16-Bit-Ganzzahl mit Vorzeichen
int32 Konvertiert in eine vorzeichenbehaftete 32-Bit-Ganzzahl
int64 Konvertiert in eine 64-Bit-Ganzzahl mit Vorzeichen
uint8 Konvertiert in eine vorzeichenlose 8-Bit-Ganzzahl
uint16 Konvertiert in eine vorzeichenlose 16-Bit-Ganzzahl
uint32 Konvertiert in eine vorzeichenlose 32-Bit-Ganzzahl
uint64 Konvertiert in eine vorzeichenlose 64-Bit-Ganzzahl

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = single([5.32 3.47 6.28]) .* 7.5
x = double([5.32 3.47 6.28]) .* 7.5
x = int8([5.32 3.47 6.28]) .* 7.5
x = int16([5.32 3.47 6.28]) .* 7.5
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

x =

   39.900   26.025   47.100

x =

   39.900   26.025   47.100

x =

   38  23  45

x =

   38  23  45

x =

   38  23  45

x =

   38  23  45

Beispiel

Lassen Sie uns das vorherige Beispiel noch etwas erweitern. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
x = num2cell(x)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

x =

   38  23  45

x =

   38  23  45

x = 
{
   [1,1] = 38
   [1,2] = 23
   [1,3] = 45
}

Kleinste und größte Ganzzahlen

Die Funktionen intmax() und intmin() Gibt die Maximal- und Minimalwerte zurück, die mit allen Arten von Ganzzahlen dargestellt werden können.

Beide Funktionen verwenden den Integer-Datentyp als Argument, z. B. intmax (int8) oder intmin (int64), und geben die Maximal- und Minimalwerte zurück, die Sie mit dem Integer-Datentyp darstellen können.

Beispiel

Das folgende Beispiel zeigt, wie Sie die kleinsten und größten Werte von Ganzzahlen erhalten. Erstellen Sie eine Skriptdatei und schreiben Sie den folgenden Code hinein -

% displaying the smallest and largest signed integer data
str = 'The range for int8 is:\n\t%d to %d ';
sprintf(str, intmin('int8'), intmax('int8'))
str = 'The range for int16 is:\n\t%d to %d ';
sprintf(str, intmin('int16'), intmax('int16'))
str = 'The range for int32 is:\n\t%d to %d ';
sprintf(str, intmin('int32'), intmax('int32'))
str = 'The range for int64 is:\n\t%d to %d ';
sprintf(str, intmin('int64'), intmax('int64'))
 
% displaying the smallest and largest unsigned integer data
str = 'The range for uint8 is:\n\t%d to %d ';
sprintf(str, intmin('uint8'), intmax('uint8'))
str = 'The range for uint16 is:\n\t%d to %d ';
sprintf(str, intmin('uint16'), intmax('uint16'))
str = 'The range for uint32 is:\n\t%d to %d ';
sprintf(str, intmin('uint32'), intmax('uint32'))
str = 'The range for uint64 is:\n\t%d to %d ';
sprintf(str, intmin('uint64'), intmax('uint64'))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans = The range for int8 is:
	-128 to 127 
ans = The range for int16 is:
	-32768 to 32767 
ans = The range for int32 is:
	-2147483648 to 2147483647 
ans = The range for int64 is:
	0 to 0 
ans = The range for uint8 is:
	0 to 255 
ans = The range for uint16 is:
	0 to 65535 
ans = The range for uint32 is:
	0 to -1 
ans = The range for uint64 is:
	0 to 18446744073709551616

Kleinste und größte Gleitkommazahlen

Die Funktionen realmax() und realmin() Gibt die Maximal- und Minimalwerte zurück, die mit Gleitkommazahlen dargestellt werden können.

Beide Funktionen geben beim Aufruf mit dem Argument 'single' die Maximal- und Minimalwerte zurück, die Sie mit dem Datentyp mit einfacher Genauigkeit darstellen können, und geben beim Aufruf mit dem Argument 'double' die Maximal- und Minimalwerte zurück, mit denen Sie darstellen können der Datentyp mit doppelter Genauigkeit.

Beispiel

Das folgende Beispiel zeigt, wie Sie die kleinsten und größten Gleitkommazahlen erhalten. Erstellen Sie eine Skriptdatei und schreiben Sie den folgenden Code hinein -

% displaying the smallest and largest single-precision 
% floating point number
str = 'The range for single is:\n\t%g to %g and\n\t %g to  %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
   realmin('single'), realmax('single'))

% displaying the smallest and largest double-precision 
% floating point number
str = 'The range for double is:\n\t%g to %g and\n\t %g to  %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
   realmin('double'), realmax('double'))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans = The range for single is:                                                  
        -3.40282e+38 to -1.17549e-38 and                                        
         1.17549e-38 to  3.40282e+38                                            
ans = The range for double is:                                                  
        -1.79769e+308 to -2.22507e-308 and                                      
         2.22507e-308 to  1.79769e+308

Das Erstellen einer Zeichenfolge ist in MATLAB ganz einfach. Tatsächlich haben wir es schon oft benutzt. Beispielsweise geben Sie Folgendes in die Eingabeaufforderung ein:

my_string = 'Tutorials Point'

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

my_string = Tutorials Point

MATLAB betrachtet alle Variablen als Arrays und Zeichenfolgen als Zeichenarrays. Verwenden wir diewhos Befehl zum Überprüfen der oben erstellten Variablen -

whos

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

Name           Size            Bytes  Class    Attributes
my_string      1x16               32  char

Interessanterweise können Sie numerische Konvertierungsfunktionen wie verwenden uint8 oder uint16um die Zeichen in der Zeichenfolge in ihre numerischen Codes umzuwandeln. Daschar Funktion konvertiert den ganzzahligen Vektor zurück in Zeichen -

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string)        % 8-bit ascii values
str_back_to_char= char(str_ascii)  
str_16bit = uint16(my_string)       % 16-bit ascii values
str_back_to_char = char(str_16bit)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

str_ascii =

   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116

str_back_to_char = Tutorial's Point
str_16bit =

   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116

str_back_to_char = Tutorial's Point

Rechteckiges Zeichenarray

Die Zeichenfolgen, die wir bisher besprochen haben, sind eindimensionale Zeichenarrays. Wir müssen jedoch mehr als das speichern. Wir müssen mehr dimensionale Textdaten in unserem Programm speichern. Dies wird erreicht, indem rechteckige Zeichenarrays erstellt werden.

Die einfachste Möglichkeit, ein rechteckiges Zeichenarray zu erstellen, besteht darin, zwei oder mehr eindimensionale Zeichenarrays je nach Bedarf vertikal oder horizontal zu verketten.

Sie können Zeichenfolgen auf eine der folgenden Arten vertikal kombinieren:

  • Verwenden des MATLAB-Verkettungsoperators []und Trennen jeder Zeile mit einem Semikolon (;). Bitte beachten Sie, dass bei dieser Methode jede Zeile die gleiche Anzahl von Zeichen enthalten muss. Bei Zeichenfolgen mit unterschiedlichen Längen sollten Sie nach Bedarf Leerzeichen einfügen.

  • Verwendung der charFunktion. Wenn die Zeichenfolgen unterschiedlich lang sind, füllt char die kürzeren Zeichenfolgen mit nachgestellten Leerzeichen auf, sodass jede Zeile die gleiche Anzahl von Zeichen enthält.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

doc_profile = ['Zara Ali                             '; ...
               'Sr. Surgeon                          '; ...
               'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
                  'RN Tagore Cardiology Research Center')

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

doc_profile =
Zara Ali                             
Sr. Surgeon                          
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali                            
Sr. Surgeon                         
RN Tagore Cardiology Research Center

Sie können Zeichenfolgen auf eine der folgenden Arten horizontal kombinieren:

  • Verwenden des MATLAB-Verkettungsoperators []und Trennen der Eingabezeichenfolgen durch ein Komma oder ein Leerzeichen. Diese Methode behält alle nachgestellten Leerzeichen in den Eingabearrays bei.

  • Verwenden der Zeichenfolgenverkettungsfunktion strcat. Diese Methode entfernt nachgestellte Leerzeichen in den Eingaben.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

name =     'Zara Ali                             ';
position = 'Sr. Surgeon                          '; 
worksAt =  'R N Tagore Cardiology Research Center';
profile = [name ', ' position ', ' worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

profile = Zara Ali      , Sr. Surgeon      , R N Tagore Cardiology Research Center
profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center

Kombinieren von Strings zu einem Zellenarray

Aus unserer vorherigen Diskussion geht hervor, dass das Kombinieren von Zeichenfolgen mit unterschiedlichen Längen schmerzhaft sein kann, da alle Zeichenfolgen im Array dieselbe Länge haben müssen. Wir haben Leerzeichen am Ende von Zeichenfolgen verwendet, um deren Länge auszugleichen.

Eine effizientere Möglichkeit zum Kombinieren der Zeichenfolgen besteht jedoch darin, das resultierende Array in ein Zellenarray zu konvertieren.

Das MATLAB-Zellenarray kann verschiedene Größen und Datentypen in einem Array enthalten. Zellenarrays bieten eine flexiblere Möglichkeit zum Speichern von Zeichenfolgen unterschiedlicher Länge.

Das cellstr Funktion konvertiert ein Zeichenarray in ein Zellenarray von Zeichenfolgen.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

name =     'Zara Ali                             ';
position = 'Sr. Surgeon                          '; 
worksAt =  'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

{                                                                               
   [1,1] = Zara Ali                                                              
   [2,1] = Sr. Surgeon                                                           
   [3,1] = R N Tagore Cardiology Research Center                                 
}

String-Funktionen in MATLAB

MATLAB bietet zahlreiche Zeichenfolgenfunktionen zum Erstellen, Kombinieren, Parsen, Vergleichen und Bearbeiten von Zeichenfolgen.

Die folgende Tabelle enthält eine kurze Beschreibung der Zeichenfolgenfunktionen in MATLAB -

Funktion Zweck
Funktionen zum Speichern von Text in Zeichenarrays, Kombinieren von Zeichenarrays usw.
Leerzeichen Erstellen Sie eine Zeichenfolge mit leeren Zeichen
cellstr Erstellen Sie ein Zellenarray mit Zeichenfolgen aus dem Zeichenarray
verkohlen In Zeichenarray (Zeichenfolge) konvertieren
iscellstr Bestimmen Sie, ob die Eingabe ein Zellenarray von Zeichenfolgen ist
ischar Bestimmen Sie, ob es sich bei dem Element um ein Zeichenarray handelt
sprintf Daten in Zeichenfolge formatieren
strcat Verketten Sie Zeichenfolgen horizontal
strjoin Verbinden Sie Zeichenfolgen im Zellenarray zu einer einzelnen Zeichenfolge
Funktionen zum Identifizieren von Teilen von Zeichenfolgen, Suchen und Ersetzen von Teilzeichenfolgen
ischar Bestimmen Sie, ob es sich bei dem Element um ein Zeichenarray handelt
isletter Array-Elemente, die alphabetische Buchstaben sind
isspace Array-Elemente, die Leerzeichen sind
isstrprop Bestimmen Sie, ob die Zeichenfolge der angegebenen Kategorie entspricht
sscanf Lesen Sie formatierte Daten aus der Zeichenfolge
strfind Suchen Sie eine Zeichenfolge in einer anderen
strrep Suchen und ersetzen Sie die Teilzeichenfolge
strsplit Zeichenfolge am angegebenen Trennzeichen teilen
strtok Ausgewählte Teile der Zeichenfolge
validatestring Überprüfen Sie die Gültigkeit der Textzeichenfolge
symvar Bestimmen Sie symbolische Variablen im Ausdruck
regulärer Ausdruck Übereinstimmenden regulären Ausdruck (Groß- und Kleinschreibung beachten)
regexpi Übereinstimmenden regulären Ausdruck (Groß- und Kleinschreibung wird nicht berücksichtigt)
Regexprep Ersetzen Sie die Zeichenfolge durch einen regulären Ausdruck
regexptranslate Übersetzen Sie die Zeichenfolge in einen regulären Ausdruck
Funktionen zum Stringvergleich
strcmp Zeichenfolgen vergleichen (Groß- und Kleinschreibung beachten)
strcmpi Zeichenfolgen vergleichen (Groß- und Kleinschreibung nicht berücksichtigen)
strncmp Vergleichen Sie die ersten n Zeichen von Zeichenfolgen (Groß- und Kleinschreibung beachten)
strncmpi Vergleichen Sie die ersten n Zeichen von Zeichenfolgen (ohne Berücksichtigung der Groß- und Kleinschreibung)
Funktionen zum Ändern der Zeichenfolge in Groß- oder Kleinbuchstaben, Erstellen oder Entfernen von Leerzeichen
deblank Entfernen Sie die nachfolgenden Leerzeichen vom Ende der Schnur
strtrim Entfernen Sie den führenden und den nachfolgenden Leerraum von der Zeichenfolge
niedriger Zeichenfolge in Kleinbuchstaben konvertieren
Oberer, höher Zeichenfolge in Großbuchstaben konvertieren
gerade Zeichenarray ausrichten

Beispiele

Die folgenden Beispiele veranschaulichen einige der oben genannten Zeichenfolgenfunktionen -

Zeichenfolgen formatieren

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =  3141.592654 
   3141.59 
   +3141.59 
      3141.59 
   000003141.59

Strings verbinden

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};

% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange

Suchen und Ersetzen von Zeichenfolgen

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

students = {'Zara Ali', 'Neha Bhatnagar', ...
            'Monica Malik', 'Madhu Gautam', ...
            'Madhu Sharma', 'Bhawna Sharma',...
            'Nuha Ali', 'Reva Dutta', ...
            'Sunaina Ali', 'Sofia Kabir'};
 
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

new_student = 
{
   [1,1] = Poulomi Dutta
}
first_names = 
{
   [1,1] = Zara
   [1,2] = Neha
   [1,3] = Monica
   [1,4] = Madhu
   [1,5] = Madhu
   [1,6] = Bhawna
   [1,7] = Nuha
   [1,8] = Reva
   [1,9] = Sunaina
   [1,10] = Sofia
}

Strings vergleichen

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
   sprintf('%s and %s are equal', str1, str2)
else
   sprintf('%s and %s are not equal', str1, str2)
end

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal

Eine Funktion ist eine Gruppe von Anweisungen, die zusammen eine Aufgabe ausführen. In MATLAB werden Funktionen in separaten Dateien definiert. Der Name der Datei und der Funktion sollte identisch sein.

Funktionen arbeiten mit Variablen in ihrem eigenen Arbeitsbereich, der auch als bezeichnet wird local workspace, getrennt von dem Arbeitsbereich, auf den Sie an der MATLAB-Eingabeaufforderung zugreifen, die als bezeichnet wird base workspace.

Funktionen können mehr als ein Eingabeargument akzeptieren und mehr als ein Ausgabeargument zurückgeben.

Die Syntax einer Funktionsanweisung lautet -

function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

Beispiel

Die folgende Funktion mit dem Namen mymax sollte in eine Datei mit dem Namen mymax.m geschrieben werden . Es werden fünf Zahlen als Argument verwendet und das Maximum der Zahlen zurückgegeben.

Erstellen Sie eine Funktionsdatei mit dem Namen mymax.m und geben Sie den folgenden Code ein:

function max = mymax(n1, n2, n3, n4, n5)

%This function calculates the maximum of the
% five numbers given as input
max =  n1;
if(n2 > max)
   max = n2;
end
if(n3 > max)
   max = n3;
end
if(n4 > max)
   max = n4;
end
if(n5 > max)
   max = n5;
end

Die erste Zeile einer Funktion beginnt mit dem Schlüsselwort function. Es gibt den Namen der Funktion und die Reihenfolge der Argumente an. In unserem Beispiel verfügt die mymax- Funktion über fünf Eingabeargumente und ein Ausgabeargument.

Die Kommentarzeilen direkt nach der Funktionsanweisung enthalten den Hilfetext. Diese Zeilen werden gedruckt, wenn Sie -

help mymax

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

This function calculates the maximum of the
   five numbers given as input

Sie können die Funktion aufrufen als -

mymax(34, 78, 89, 23, 11)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans = 89

Anonyme Funktionen

Eine anonyme Funktion ist wie eine Inline-Funktion in traditionellen Programmiersprachen, die in einer einzelnen MATLAB-Anweisung definiert ist. Es besteht aus einem einzelnen MATLAB-Ausdruck und einer beliebigen Anzahl von Eingabe- und Ausgabeargumenten.

Sie können eine anonyme Funktion direkt in der MATLAB-Befehlszeile oder innerhalb einer Funktion oder eines Skripts definieren.

Auf diese Weise können Sie einfache Funktionen erstellen, ohne eine Datei für sie erstellen zu müssen.

Die Syntax zum Erstellen einer anonymen Funktion aus einem Ausdruck lautet

f = @(arglist)expression

Beispiel

In diesem Beispiel schreiben wir eine anonyme Funktion namens power, die zwei Zahlen als Eingabe verwendet und die erste Zahl auf die Potenz der zweiten Zahl zurückgibt.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)

Wenn Sie die Datei ausführen, wird Folgendes angezeigt:

result1 =  343
result2 =  7
result3 =  1.0000e-10
result4 =  9.5459

Primär- und Unterfunktionen

Jede andere Funktion als eine anonyme Funktion muss in einer Datei definiert werden. Jede Funktionsdatei enthält eine erforderliche Primärfunktion, die zuerst angezeigt wird, und eine beliebige Anzahl optionaler Unterfunktionen, die nach der Primärfunktion stehen und von dieser verwendet werden.

Primäre Funktionen können von außerhalb der Datei, die sie definiert, entweder über die Befehlszeile oder über andere Funktionen aufgerufen werden. Unterfunktionen können jedoch nicht über die Befehlszeile oder andere Funktionen außerhalb der Funktionsdatei aufgerufen werden.

Unterfunktionen sind nur für die Primärfunktion und andere Unterfunktionen in der Funktionsdatei sichtbar, die sie definiert.

Beispiel

Schreiben wir eine Funktion namens quadratisch, die die Wurzeln einer quadratischen Gleichung berechnet. Die Funktion würde drei Eingaben benötigen, den quadratischen Koeffizienten, den linearen Koeffizienten und den konstanten Term. Es würde die Wurzeln zurückgeben.

Die Funktion Datei quadratic.m wird die primäre Funktion enthält , quadratische und die Unterfunktionsscheibe , die die Diskriminanzfunktionen berechnet.

Erstellen Sie eine Funktionsdatei quadratic.m und geben Sie den folgenden Code ein:

function [x1,x2] = quadratic(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of quadratic

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end   % end of sub-function

Sie können die obige Funktion an der Eingabeaufforderung wie folgt aufrufen:

quadratic(2,4,-4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans = 0.7321

Verschachtelte Funktionen

Sie können Funktionen innerhalb des Körpers einer anderen Funktion definieren. Diese werden als verschachtelte Funktionen bezeichnet. Eine verschachtelte Funktion enthält einige oder alle Komponenten einer anderen Funktion.

Verschachtelte Funktionen werden im Rahmen einer anderen Funktion definiert und teilen sich den Zugriff auf den Arbeitsbereich der enthaltenen Funktion.

Eine verschachtelte Funktion folgt der folgenden Syntax:

function x = A(p1, p2)
...
B(p2)
   function y = B(p3)
   ...
   end
...
end

Beispiel

Lassen Sie uns die Funktion quadratisch umschreiben , aus dem vorherigen Beispiel, diesmal ist die Disc-Funktion jedoch eine verschachtelte Funktion.

Erstellen Sie eine Funktionsdatei quadratic2.m und geben Sie den folgenden Code ein:

function [x1,x2] = quadratic2(a,b,c)
function disc  % nested function
d = sqrt(b^2 - 4*a*c);
end   % end of function disc

disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of function quadratic2

Sie können die obige Funktion an der Eingabeaufforderung wie folgt aufrufen:

quadratic2(2,4,-4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =  0.73205

Private Funktionen

Eine private Funktion ist eine primäre Funktion, die nur für eine begrenzte Gruppe anderer Funktionen sichtbar ist. Wenn Sie die Implementierung einer oder mehrerer Funktionen nicht verfügbar machen möchten, können Sie sie als private Funktionen erstellen.

Private Funktionen befinden sich in subfolders mit dem speziellen Namen private.

Sie sind nur für Funktionen im übergeordneten Ordner sichtbar.

Beispiel

Schreiben wir die quadratische Funktion neu. Diesmal ist die Scheibenfunktion , die die Diskriminante berechnet, jedoch eine private Funktion.

Erstellen Sie einen Unterordner mit dem Namen privat im Arbeitsverzeichnis. Speichern Sie die folgende Funktionsdatei disc.m darin -

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end      % end of sub-function

Erstellen Sie eine Funktion quadratic3.m in Ihrem Arbeitsverzeichnis und geben Sie den folgenden Code ein:

function [x1,x2] = quadratic3(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 

x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end      % end of quadratic3

Sie können die obige Funktion an der Eingabeaufforderung wie folgt aufrufen:

quadratic3(2,4,-4)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =  0.73205

Globale Variablen

Globale Variablen können von mehr als einer Funktion gemeinsam genutzt werden. Dazu müssen Sie die Variable in allen Funktionen als global deklarieren.

Wenn Sie über den Basisarbeitsbereich auf diese Variable zugreifen möchten, deklarieren Sie die Variable in der Befehlszeile.

Die globale Deklaration muss erfolgen, bevor die Variable tatsächlich in einer Funktion verwendet wird. Es wird empfohlen, Großbuchstaben für die Namen globaler Variablen zu verwenden, um sie von anderen Variablen zu unterscheiden.

Beispiel

Lassen Sie uns eine Funktionsdatei mit dem Namen aver.m erstellen und den folgenden Code eingeben:

function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

av =  35.500

Das Importieren von Daten in MATLAB bedeutet das Laden von Daten aus einer externen Datei. DasimportdataFunktion ermöglicht das Laden verschiedener Datendateien in verschiedenen Formaten. Es hat die folgenden fünf Formen -

Sr.Nr. Bedienungsanleitung
1

A = importdata(filename)

Lädt Daten in Array A aus der Datei bezeichnet mit Dateinamen .

2

A = importdata('-pastespecial')

Lädt Daten aus der Systemzwischenablage und nicht aus einer Datei.

3

A = importdata(___, delimiterIn)

Interpretiert delimiterIn als Spaltentrennzeichen in ASCII-Datei, Dateiname oder Zwischenablagedaten. Sie können delimiterIn mit jedem der Eingabeargumente in den obigen Syntaxen verwenden.

4

A = importdata(___, delimiterIn, headerlinesIn)

Lädt Daten aus der ASCII-Datei, dem Dateinamen oder der Zwischenablage und liest numerische Daten ab Zeile headerlinesIn + 1 .

5

[A, delimiterOut, headerlinesOut] = importdata(___)

Gibt das erkannte Trennzeichen für die ASCII-Eingabedatei in delimiterOut und die erkannte Anzahl von Kopfzeilen in headerlinesOut unter Verwendung eines der Eingabeargumente in den vorherigen Syntaxen zurück.

Standardmäßig unterstützt Octave die Funktion importdata () nicht. Daher müssen Sie dieses Paket suchen und installieren, damit die folgenden Beispiele mit Ihrer Octave-Installation funktionieren.

Beispiel 1

Lassen Sie uns eine Bilddatei laden und anzeigen. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

filename = 'smile.jpg';
A = importdata(filename);
image(A);

Wenn Sie die Datei ausführen, zeigt MATLAB die Bilddatei an. Sie müssen es jedoch im aktuellen Verzeichnis speichern.

Beispiel 2

In diesem Beispiel importieren wir eine Textdatei und geben Trennzeichen und Spaltenüberschrift an. Lassen Sie uns eine durch Leerzeichen getrennte ASCII-Datei mit Spaltenüberschriften mit dem Namen weekdata.txt erstellen .

Unsere Textdatei weekdata.txt sieht so aus -

SunDay  MonDay  TuesDay  WednesDay  ThursDay  FriDay  SaturDay
95.01   76.21   61.54    40.57       55.79    70.28   81.53
73.11   45.65   79.19    93.55       75.29    69.87   74.68
60.68   41.85   92.18    91.69       81.32    90.38   74.51
48.60   82.14   73.82    41.03       0.99     67.22   93.18
89.13   44.47   57.63    89.36       13.89    19.88   46.60

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);

% View data
for k = [1:7]
   disp(A.colheaders{1, k})
   disp(A.data(:, k))
   disp(' ')
end

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

SunDay
   95.0100
   73.1100
   60.6800
   48.6000
   89.1300
 
MonDay
   76.2100
   45.6500
   41.8500
   82.1400
   44.4700
 
TuesDay
   61.5400
   79.1900
   92.1800
   73.8200
   57.6300

WednesDay
   40.5700
   93.5500
   91.6900
   41.0300
   89.3600
 
ThursDay
   55.7900
   75.2900
   81.3200
   0.9900
   13.8900
 
FriDay
   70.2800
   69.8700
   90.3800
   67.2200
   19.8800

SaturDay
   81.5300
   74.6800
   74.5100
   93.1800
   46.6000

Beispiel 3

In diesem Beispiel importieren wir Daten aus der Zwischenablage.

Kopieren Sie die folgenden Zeilen in die Zwischenablage -

Mathematics is simple

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

A = importdata('-pastespecial')

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

A = 
   'Mathematics is simple'

Low-Level-Datei-E / A.

Die Funktion importdata ist eine übergeordnete Funktion. Die einfachen Datei-E / A-Funktionen in MATLAB ermöglichen die größte Kontrolle über das Lesen oder Schreiben von Daten in eine Datei. Diese Funktionen benötigen jedoch detailliertere Informationen zu Ihrer Datei, um effizient arbeiten zu können.

MATLAB bietet die folgenden Funktionen für Lese- und Schreibvorgänge auf Byte- oder Zeichenebene:

Funktion Beschreibung
fclose Schließen Sie eine oder alle geöffneten Dateien
feof Test auf Dateiende
Ferror Informationen zu Datei-E / A-Fehlern
fgetl Lesen Sie die Zeile aus der Datei und entfernen Sie die Zeilenumbrüche
fgets Lesen Sie die Zeile aus der Datei und behalten Sie die Zeilenumbruchzeichen bei
öffnen Datei öffnen oder Informationen zu geöffneten Dateien erhalten
fprintf Schreiben Sie Daten in eine Textdatei
fread Lesen Sie Daten aus der Binärdatei
Frewind Verschieben Sie die Dateipositionsanzeige an den Anfang der geöffneten Datei
fscanf Daten aus Textdatei lesen
fseek An die angegebene Position in der Datei verschieben
ftell Position in geöffneter Datei
fwrite Schreiben Sie Daten in eine Binärdatei

Importieren Sie Textdatendateien mit Low-Level-E / A.

MATLAB bietet die folgenden Funktionen für den einfachen Import von Textdatendateien:

  • Das fscanf Funktion liest formatierte Daten in einer Text- oder ASCII-Datei.

  • Das fgetl und fgets Funktionen lesen jeweils eine Zeile einer Datei, wobei jede Zeile durch ein Zeilenumbruchzeichen getrennt wird.

  • Das fread Funktion liest einen Datenstrom auf Byte- oder Bitebene.

Beispiel

Wir haben eine Textdatendatei 'myfile.txt' in unserem Arbeitsverzeichnis gespeichert. In der Datei werden Niederschlagsdaten drei Monate lang gespeichert. Juni, Juli und August für das Jahr 2012.

Die Daten in myfile.txt enthalten wiederholte Sätze von Zeit-, Monats- und Niederschlagsmessungen an fünf Stellen. Die Header-Daten speichern die Anzahl der Monate M; Wir haben also M Messreihen.

Die Datei sieht so aus -

Rainfall Data
Months: June, July, August
 
M = 3
12:00:00
June-2012
17.21  28.52  39.78  16.55 23.67
19.15  0.35   17.57  NaN   12.01
17.92  28.49  17.40  17.06 11.09
9.59   9.33   NaN    0.31  0.23 
10.46  13.17  NaN    14.89 19.33
20.97  19.50  17.65  14.45 14.00
18.23  10.34  17.95  16.46 19.34
09:10:02
July-2012
12.76  16.94  14.38  11.86 16.89
20.46  23.17  NaN    24.89 19.33
30.97  49.50  47.65  24.45 34.00
18.23  30.34  27.95  16.46 19.34
30.46  33.17  NaN    34.89  29.33
30.97  49.50  47.65  24.45 34.00
28.67  30.34  27.95  36.46 29.34
15:03:40
August-2012
17.09  16.55  19.59  17.25 19.22
17.54  11.45  13.48  22.55 24.01
NaN    21.19  25.85  25.05 27.21
26.79  24.98  12.23  16.99 18.67
17.54  11.45  13.48  22.55 24.01
NaN    21.19  25.85  25.05 27.21
26.79  24.98  12.23  16.99 18.67

Wir werden Daten aus dieser Datei importieren und diese Daten anzeigen. Führen Sie die folgenden Schritte aus:

  • Öffnen Sie die Datei mit fopen Funktion und erhalten Sie die Dateikennung.

  • Beschreiben Sie die Daten in der Datei mit format specifiers, sowie '%s"Für eine Schnur"%d'für eine ganze Zahl oder'%f'für eine Gleitkommazahl.

  • Um Literalzeichen in der Datei zu überspringen, fügen Sie sie in die Formatbeschreibung ein. Verwenden Sie zum Überspringen eines Datenfelds ein Sternchen ('*') im Bezeichner.

    Um beispielsweise die Header zu lesen und den Einzelwert für M zurückzugeben, schreiben wir -

    M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
  • Standardmäßig, fscanfLiest Daten gemäß unserer Formatbeschreibung, bis sie keine Übereinstimmung mit den Daten finden oder das Ende der Datei erreichen. Hier verwenden wir die for-Schleife zum Lesen von 3 Datensätzen und jedes Mal werden 7 Zeilen und 5 Spalten gelesen.

  • Wir werden eine Struktur mit dem Namen mydata im Arbeitsbereich erstellen, um die aus der Datei gelesenen Daten zu speichern. Diese Struktur besteht aus drei Feldern: Zeit , Monat und Raindata- Array.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

filename = '/data/myfile.txt';
rows = 7;
cols = 5;
 
% open the file
fid = fopen(filename);
 
% read the file headers, find M (number of months)
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
 
% read each set of measurements
for n = 1:M
   mydata(n).time = fscanf(fid, '%s', 1);
   mydata(n).month = fscanf(fid, '%s', 1);
 
   % fscanf fills the array in column order,
   % so transpose the results
   mydata(n).raindata  = ...
      fscanf(fid, '%f', [rows, cols]);
end
for n = 1:M
   disp(mydata(n).time), disp(mydata(n).month)
   disp(mydata(n).raindata)
end
 
% close the file
fclose(fid);

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

12:00:00
June-2012
   17.2100   17.5700   11.0900   13.1700   14.4500
   28.5200       NaN    9.5900       NaN   14.0000
   39.7800   12.0100    9.3300   14.8900   18.2300
   16.5500   17.9200       NaN   19.3300   10.3400
   23.6700   28.4900    0.3100   20.9700   17.9500
   19.1500   17.4000    0.2300   19.5000   16.4600
   0.3500   17.0600   10.4600   17.6500   19.3400

09:10:02
July-2012
   12.7600       NaN   34.0000   33.1700   24.4500
   16.9400   24.8900   18.2300       NaN   34.0000
   14.3800   19.3300   30.3400   34.8900   28.6700
   11.8600   30.9700   27.9500   29.3300   30.3400
   16.8900   49.5000   16.4600   30.9700   27.9500
   20.4600   47.6500   19.3400   49.5000   36.4600
   23.1700   24.4500   30.4600   47.6500   29.3400

15:03:40
August-2012
   17.0900   13.4800   27.2100   11.4500   25.0500
   16.5500   22.5500   26.7900   13.4800   27.2100
   19.5900   24.0100   24.9800   22.5500   26.7900
   17.2500       NaN   12.2300   24.0100   24.9800
   19.2200   21.1900   16.9900       NaN   12.2300
   17.5400   25.8500   18.6700   21.1900   16.9900
   11.4500   25.0500   17.5400   25.8500   18.6700

Datenexport (oder -ausgabe) in MATLAB bedeutet, in Dateien zu schreiben. Mit MATLAB können Sie Ihre Daten in einer anderen Anwendung verwenden, die ASCII-Dateien liest. Zu diesem Zweck bietet MATLAB verschiedene Datenexportoptionen.

Sie können den folgenden Dateityp erstellen:

  • Rechteckige, begrenzte ASCII-Datendatei aus einem Array.

  • Tagebuch- (oder Protokoll-) Datei mit Tastenanschlägen und der daraus resultierenden Textausgabe.

  • Spezialisierte ASCII-Datei mit Funktionen auf niedriger Ebene wie fprintf.

  • MEX-Datei für den Zugriff auf Ihre C / C ++ - oder Fortran-Routine, die in ein bestimmtes Textdateiformat schreibt.

Außerdem können Sie Daten in Tabellenkalkulationen exportieren.

Es gibt zwei Möglichkeiten, ein numerisches Array als begrenzte ASCII-Datendatei zu exportieren:

  • Verwendung der save Funktion und Angabe der -ascii Qualifikation

  • Verwendung der dlmwrite Funktion

Die Syntax für die Verwendung der Speicherfunktion lautet -

save my_data.out num_array -ascii

Dabei ist my_data.out die durch Trennzeichen getrennte ASCII- Datendatei , num_array ein numerisches Array und−ascii ist der Spezifizierer.

Syntax für die Verwendung der dlmwrite Funktion ist -

dlmwrite('my_data.out', num_array, 'dlm_char')

Dabei ist my_data.out die durch Trennzeichen getrennte ASCII- Datendatei , num_array ein numerisches Array und dlm_char das Trennzeichen.

Beispiel

Das folgende Beispiel zeigt das Konzept. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii;
type array_data1.out
dlmwrite('array_data2.out', num_array, ' ');
type array_data2.out

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

1.0000000e+00   2.0000000e+00   3.0000000e+00   4.0000000e+00
   4.0000000e+00   5.0000000e+00   6.0000000e+00   7.0000000e+00
   7.0000000e+00   8.0000000e+00   9.0000000e+00   0.0000000e+00

1 2 3 4
4 5 6 7
7 8 9 0

Bitte beachten Sie, dass der Befehl save -ascii und die Funktion dlmwrite nicht mit Zellenarrays als Eingabe funktionieren. Sie können eine begrenzte ASCII-Datei aus dem Inhalt eines Zellenarrays erstellen

  • Konvertieren Sie das Zellenarray entweder mit der in eine Matrix cell2mat Funktion

  • Oder exportieren Sie das Zellenarray mithilfe von Datei-E / A-Funktionen auf niedriger Ebene.

Wenn Sie die verwenden save Funktion zum Schreiben eines Zeichenarrays in eine ASCII-Datei, schreibt das ASCII-Äquivalent der Zeichen in die Datei.

Schreiben wir zum Beispiel das Wort "Hallo" in eine Datei -

h = 'hello';
save textdata.out h -ascii
type textdata.out

MATLAB führt die obigen Anweisungen aus und zeigt das folgende Ergebnis an. Dies sind die Zeichen der Zeichenfolge 'Hallo' im 8-stelligen ASCII-Format.

1.0400000e+02   1.0100000e+02   1.0800000e+02   1.0800000e+02   1.1100000e+02

Schreiben in Tagebuchdateien

Tagebuchdateien sind Aktivitätsprotokolle Ihrer MATLAB-Sitzung. Die Tagebuchfunktion erstellt eine exakte Kopie Ihrer Sitzung in einer Datenträgerdatei ohne Grafiken.

Geben Sie - ein, um die Tagebuchfunktion einzuschalten.

diary

Optional können Sie den Namen der Protokolldatei angeben, z.

diary logdata.out

Tagebuchfunktion ausschalten -

diary off

Sie können die Tagebuchdatei in einem Texteditor öffnen.

Exportieren von Daten in Textdatendateien mit Low-Level-E / A.

Bisher haben wir numerische Arrays exportiert. Möglicherweise müssen Sie jedoch andere Textdateien erstellen, einschließlich Kombinationen aus numerischen Daten und Zeichendaten, nicht rechteckigen Ausgabedateien oder Dateien mit Nicht-ASCII-Codierungsschemata. Für diese Zwecke bietet MATLAB das Low-Levelfprintf Funktion.

Wie bei E / A-Dateiaktivitäten auf niedriger Ebene müssen Sie vor dem Exportieren eine Datei mit dem öffnen oder erstellen fopenFunktion und erhalten Sie die Dateikennung. Standardmäßig öffnet fopen eine Datei für den schreibgeschützten Zugriff. Sie sollten die Berechtigung zum Schreiben oder Anhängen angeben, z. B. 'w' oder 'a'.

Nach der Verarbeitung der Datei müssen Sie sie mit schließen fclose(fid) Funktion.

Das folgende Beispiel zeigt das Konzept -

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];
 
% open a file for writing
fid = fopen('logtable.txt', 'w');
 
% Table Header
fprintf(fid, 'Log     Function\n\n');
 
% print values in column order
% two values appear on each row of the file
fprintf(fid, '%f    %f\n', y);
fclose(fid);

% display the file created
type logtable.txt

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

Log         Function

0.000000    -Inf
10.000000    2.302585
20.000000    2.995732
30.000000    3.401197
40.000000    3.688879
50.000000    3.912023
60.000000    4.094345
70.000000    4.248495
80.000000    4.382027
90.000000    4.499810
100.000000    4.605170

Um das Diagramm einer Funktion zu zeichnen, müssen Sie die folgenden Schritte ausführen:

  • Definieren xdurch Angabe der range of values für die Variable x, für die die Funktion aufgetragen werden soll

  • Definieren Sie die Funktion, y = f(x)

  • Ruf den plot Befehl, als plot(x, y)

Das folgende Beispiel würde das Konzept demonstrieren. Zeichnen wir die einfache Funktiony = x für den Wertebereich für x von 0 bis 100 mit einem Inkrement von 5.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [0:5:100];
y = x;
plot(x, y)

Wenn Sie die Datei ausführen, zeigt MATLAB das folgende Diagramm an:

Nehmen wir noch ein Beispiel, um die Funktion y = x 2 zu zeichnen . In diesem Beispiel zeichnen wir zwei Diagramme mit derselben Funktion, aber beim zweiten Mal reduzieren wir den Wert des Inkrements. Bitte beachten Sie, dass das Diagramm glatter wird, wenn wir das Inkrement verringern.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [1 2 3 4 5 6 7 8 9 10];
x = [-100:20:100];
y = x.^2;
plot(x, y)

Wenn Sie die Datei ausführen, zeigt MATLAB das folgende Diagramm an:

Ändern Sie die Codedatei ein wenig, reduzieren Sie das Inkrement auf 5 -

x = [-100:5:100];
y = x.^2;
plot(x, y)

MATLAB zeichnet eine glattere Grafik -

Hinzufügen von Titeln, Beschriftungen, Gitterlinien und Skalierung zum Diagramm

Mit MATLAB können Sie Titel, Beschriftungen entlang der x- und y-Achse sowie Gitterlinien hinzufügen und die Achsen anpassen, um das Diagramm aufzufrischen.

  • Das xlabel und ylabel Befehle erzeugen Beschriftungen entlang der x-Achse und der y-Achse.

  • Das title Mit dem Befehl können Sie einen Titel in das Diagramm einfügen.

  • Das grid on Mit dem Befehl können Sie die Gitterlinien in das Diagramm einfügen.

  • Das axis equal Mit dem Befehl können Sie das Diagramm mit denselben Skalierungsfaktoren und den Zwischenräumen auf beiden Achsen erstellen.

  • Das axis square Befehl erzeugt ein quadratisches Diagramm.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [0:0.01:10];
y = sin(x);
plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),
grid on, axis equal

MATLAB generiert das folgende Diagramm:

Zeichnen mehrerer Funktionen im selben Diagramm

Sie können mehrere Diagramme auf demselben Diagramm zeichnen. Das folgende Beispiel zeigt das Konzept -

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [0 : 0.01: 10];
y = sin(x);
g = cos(x);
plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')

MATLAB generiert das folgende Diagramm:

Einstellen der Farben im Diagramm

MATLAB bietet acht grundlegende Farboptionen zum Zeichnen von Diagrammen. Die folgende Tabelle zeigt die Farben und ihre Codes -

Code Farbe
w Weiß
k Schwarz
b Blau
r rot
c Cyan
G Grün
m Magenta
y Gelb

Beispiel

Zeichnen wir den Graphen zweier Polynome

  • f (x) = 3 × 4 + 2 × 3 + 7 × 2 + 2 × + 9 und

  • g (x) = 5 × 3 + 9 × + 2

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')

Wenn Sie die Datei ausführen, generiert MATLAB das folgende Diagramm:

Achsenskalen einstellen

Das axisMit dem Befehl können Sie die Achsenskalen festlegen. Mit dem Befehl axis können Sie wie folgt minimale und maximale Werte für x- und y-Achsen angeben:

axis ( [xmin xmax ymin ymax] )

Das folgende Beispiel zeigt dies -

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -1 1])

Wenn Sie die Datei ausführen, generiert MATLAB das folgende Diagramm:

Untergrundstücke erzeugen

Wenn Sie ein Array von Plots in derselben Abbildung erstellen, wird jedes dieser Plots als Unterplot bezeichnet. Dassubplot Befehl wird zum Erstellen von Unterplots verwendet.

Die Syntax für den Befehl lautet -

subplot(m, n, p)

Dabei sind m und n die Anzahl der Zeilen und Spalten des Plot-Arrays und p gibt an, wo ein bestimmtes Plot abgelegt werden soll.

Jedes mit dem Befehl subplot erstellte Diagramm kann seine eigenen Merkmale aufweisen. Das folgende Beispiel zeigt das Konzept -

Beispiel

Lassen Sie uns zwei Diagramme generieren -

y = e - 1,5x sin (10x)

y = e - 2x sin (10x)

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,1)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,2)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])

Wenn Sie die Datei ausführen, generiert MATLAB das folgende Diagramm:

In diesem Kapitel werden die Plot- und Grafikfunktionen von MATLAB weiter erläutert. Wir werden diskutieren -

  • Balkendiagramme zeichnen
  • Konturen zeichnen
  • Dreidimensionale Diagramme

Balkendiagramme zeichnen

Das barBefehl zeichnet ein zweidimensionales Balkendiagramm. Nehmen wir ein Beispiel, um die Idee zu demonstrieren.

Beispiel

Lassen Sie uns ein imaginäres Klassenzimmer mit 10 Schülern haben. Wir wissen, dass der Prozentsatz der von diesen Schülern erzielten Noten 75, 58, 90, 87, 50, 85, 92, 75, 60 und 95 beträgt. Wir werden das Balkendiagramm für diese Daten zeichnen.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [1:10];
y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];
bar(x,y), xlabel('Student'),ylabel('Score'),
title('First Sem:')
print -deps graph.eps

Wenn Sie die Datei ausführen, zeigt MATLAB das folgende Balkendiagramm an:

Konturen zeichnen

Eine Konturlinie einer Funktion zweier Variablen ist eine Kurve, entlang der die Funktion einen konstanten Wert hat. Konturlinien werden zum Erstellen von Konturkarten verwendet, indem Punkte gleicher Höhe über einem bestimmten Niveau, z. B. dem mittleren Meeresspiegel, verbunden werden.

MATLAB bietet eine contour Funktion zum Zeichnen von Konturkarten.

Beispiel

Lassen Sie uns eine Konturkarte erzeugen, die die Konturlinien für eine gegebene Funktion g = f (x, y) zeigt. Diese Funktion hat zwei Variablen. Wir müssen also zwei unabhängige Variablen generieren, dh zwei Datensätze x und y. Dies geschieht durch Aufrufen dermeshgrid Befehl.

Das meshgrid Befehl wird verwendet, um eine Matrix von Elementen zu erzeugen, die den Bereich über x und y zusammen mit der Angabe des Inkrements in jedem Fall angeben.

Zeichnen wir unsere Funktion g = f (x, y), wobei −5 ≤ x ≤ 5, −3 ≤ y ≤ 3. Nehmen wir für beide Werte ein Inkrement von 0.1. Die Variablen werden gesetzt als -

[x,y] = meshgrid(–5:0.1:5, –3:0.1:3);

Zuletzt müssen wir die Funktion zuweisen. Unsere Funktion sei: x 2 + y 2

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

[x,y] = meshgrid(-5:0.1:5,-3:0.1:3);   %independent variables
g = x.^2 + y.^2;                       % our function
contour(x,y,g)                         % call the contour function
print -deps graph.eps

Wenn Sie die Datei ausführen, zeigt MATLAB die folgende Konturkarte an:

Lassen Sie uns den Code ein wenig ändern, um die Karte aufzuwerten

[x,y] = meshgrid(-5:0.1:5,-3:0.1:3);   %independent variables
g = x.^2 + y.^2;                       % our function
[C, h] = contour(x,y,g);               % call the contour function
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
print -deps graph.eps

Wenn Sie die Datei ausführen, zeigt MATLAB die folgende Konturkarte an:

Dreidimensionale Diagramme

Dreidimensionale Diagramme zeigen im Wesentlichen eine Oberfläche, die durch eine Funktion in zwei Variablen definiert ist: g = f (x, y).

Um g zu definieren, erstellen wir wie zuvor zunächst eine Menge von (x, y) Punkten über der Domäne der Funktion mit der meshgridBefehl. Als nächstes weisen wir die Funktion selbst zu. Schließlich verwenden wir diesurf Befehl zum Erstellen eines Flächendiagramms.

Das folgende Beispiel zeigt das Konzept -

Beispiel

Erstellen wir eine 3D-Oberflächenkarte für die Funktion g = xe - (x 2 + y 2 )

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

Wenn Sie die Datei ausführen, zeigt MATLAB die folgende 3D-Zuordnung an:

Sie können auch die verwenden meshBefehl zum Erzeugen einer dreidimensionalen Oberfläche. Diesurf Der Befehl zeigt sowohl die Verbindungslinien als auch die Flächen der Oberfläche in Farbe an, während der Befehl mesh Befehl erstellt eine Drahtgitteroberfläche mit farbigen Linien, die die definierenden Punkte verbinden.

Bisher haben wir gesehen, dass alle Beispiele sowohl in MATLAB als auch in dessen GNU, alternativ Octave genannt, funktionieren. Zum Lösen grundlegender algebraischer Gleichungen unterscheiden sich MATLAB und Octave jedoch kaum voneinander. Daher werden wir versuchen, MATLAB und Octave in separaten Abschnitten zu behandeln.

Wir werden auch die Faktorisierung und Vereinfachung algebraischer Ausdrücke diskutieren.

Grundlegende algebraische Gleichungen in MATLAB lösen

Das solveFunktion wird zum Lösen algebraischer Gleichungen verwendet. In ihrer einfachsten Form nimmt die Lösungsfunktion die in Anführungszeichen eingeschlossene Gleichung als Argument.

Lösen wir zum Beispiel nach x in der Gleichung x-5 = 0

solve('x-5=0')

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   5

Sie können die Lösungsfunktion auch als - aufrufen

y = solve('x-5 = 0')

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

y =
   5

Sie können sogar nicht die rechte Seite der Gleichung einschließen -

solve('x-5')

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   5

Wenn die Gleichung mehrere Symbole enthält, geht MATLAB standardmäßig davon aus, dass Sie nach x auflösen. Die Auflösungsfunktion hat jedoch eine andere Form:

solve(equation, variable)

Hier können Sie auch die Variable erwähnen.

Lösen wir zum Beispiel die Gleichung v - u - 3t 2 = 0 für v. In diesem Fall sollten wir schreiben -

solve('v-u-3*t^2=0', 'v')

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   3*t^2 + u

Grundlegende algebraische Gleichungen in Oktave lösen

Das roots Die Funktion wird zum Lösen algebraischer Gleichungen in Octave verwendet. Sie können die obigen Beispiele wie folgt schreiben:

Lösen wir zum Beispiel nach x in der Gleichung x-5 = 0

roots([1, -5])

Octave führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans = 5

Sie können die Lösungsfunktion auch als - aufrufen

y = roots([1, -5])

Octave führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

y = 5

Lösen quadratischer Gleichungen in MATLAB

Das solveFunktion kann auch Gleichungen höherer Ordnung lösen. Es wird oft verwendet, um quadratische Gleichungen zu lösen. Die Funktion gibt die Wurzeln der Gleichung in einem Array zurück.

Das folgende Beispiel löst die quadratische Gleichung x 2 -7x +12 = 0. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

The first root is: 
   3
The second root is: 
   4

Lösen quadratischer Gleichungen in Oktave

Das folgende Beispiel löst die quadratische Gleichung x 2 -7x +12 = 0 in Oktave. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

s = roots([1, -7, 12]);

disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

The first root is: 
   4
The second root is: 
   3

Gleichungen höherer Ordnung in MATLAB lösen

Das solveFunktion kann auch Gleichungen höherer Ordnung lösen. Lösen wir zum Beispiel eine kubische Gleichung als (x-3) 2 (x-7) = 0

solve('(x-3)^2*(x-7)=0')

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   3
   3
   7

Bei Gleichungen höherer Ordnung sind Wurzeln lang und enthalten viele Terme. Sie können den numerischen Wert solcher Wurzeln erhalten, indem Sie sie in double konvertieren. Das folgende Beispiel löst die Gleichung vierter Ordnung x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

Wenn Sie die Datei ausführen, wird das folgende Ergebnis zurückgegeben:

The first root is: 
6.630396332390718431485053218985
 The second root is: 
1.0597804633025896291682772499885
 The third root is: 
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
 The fourth root is: 
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numeric value of first root
   6.6304
Numeric value of second root
   1.0598
Numeric value of third root
   -0.3451 - 1.0778i
Numeric value of fourth root
   -0.3451 + 1.0778i

Bitte beachten Sie, dass die letzten beiden Wurzeln komplexe Zahlen sind.

Gleichungen höherer Ordnung in Oktave lösen

Das folgende Beispiel löst die Gleichung vierter Ordnung x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

v = [1, -7,  3, -5, 9];
s = roots(v);

% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));

Wenn Sie die Datei ausführen, wird das folgende Ergebnis zurückgegeben:

Numeric value of first root
 6.6304
Numeric value of second root
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
 1.0598

Gleichungssystem in MATLAB lösen

Das solveDie Funktion kann auch verwendet werden, um Lösungen von Gleichungssystemen mit mehr als einer Variablen zu generieren. Nehmen wir ein einfaches Beispiel, um diese Verwendung zu demonstrieren.

Lösen wir die Gleichungen -

5x + 9y = 5

3x - 6y = 4

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =
   22/19
ans =
   -5/57

Auf die gleiche Weise können Sie größere lineare Systeme lösen. Betrachten Sie die folgenden Gleichungen -

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Gleichungssystem in Oktave lösen

Wir haben einen etwas anderen Ansatz, um ein System von 'n' linearen Gleichungen in 'n' Unbekannten zu lösen. Nehmen wir ein einfaches Beispiel, um diese Verwendung zu demonstrieren.

Lösen wir die Gleichungen -

5x + 9y = 5

3x - 6y = 4

Ein solches lineares Gleichungssystem kann als Einzelmatrixgleichung Ax = b geschrieben werden, wobei A die Koeffizientenmatrix ist, b der Spaltenvektor ist, der die rechte Seite der linearen Gleichungen enthält, und x der Spaltenvektor ist, der die Lösung als darstellt im folgenden Programm gezeigt -

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

A = [5, 9; 3, -6];
b = [5;4];
A \ b

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =

   1.157895
  -0.087719

Auf die gleiche Weise können Sie größere lineare Systeme wie unten angegeben lösen -

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

Gleichungen in MATLAB erweitern und sammeln

Das expand und die collectFunktion erweitert bzw. sammelt eine Gleichung. Das folgende Beispiel zeigt die Konzepte -

Wenn Sie mit vielen symbolischen Funktionen arbeiten, sollten Sie deklarieren, dass Ihre Variablen symbolisch sind.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x   %symbolic variable x
syms y   %symbolic variable x
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
 
% collecting equations
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =
   x^2 + 4*x - 45
ans =
   x^4 + x^3 - 43*x^2 + 23*x + 210
ans =
   2*cos(x)*sin(x)
ans =
   cos(x)*cos(y) - sin(x)*sin(y)
ans =
   x^4 - 7*x^3
ans =
   x^6 - 8*x^5 + 15*x^4

Gleichungen in Oktave erweitern und sammeln

Du brauchst symbolic Paket, das bietet expand und die collectFunktion zum Erweitern bzw. Sammeln einer Gleichung. Das folgende Beispiel zeigt die Konzepte -

Wenn Sie mit vielen symbolischen Funktionen arbeiten, sollten Sie deklarieren, dass Ihre Variablen symbolisch sind, aber Octave hat einen anderen Ansatz, um symbolische Variablen zu definieren. Beachten Sie die Verwendung vonSin und Cos, die auch im symbolischen Paket definiert sind.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

% first of all load the package, make sure its installed.
pkg load symbolic

% make symbols module available
symbols

% define symbolic variables
x = sym ('x');
y = sym ('y');
z = sym ('z');

% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
 
% collecting equations
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =

-45.0+x^2+(4.0)*x
ans =

210.0+x^4-(43.0)*x^2+x^3+(23.0)*x
ans =

sin((2.0)*x)
ans =

cos(y+x)
ans =

x^(3.0)*(-7.0+x)
ans =

(-3.0+x)*x^(4.0)*(-5.0+x)

Faktorisierung und Vereinfachung algebraischer Ausdrücke

Das factor Funktion faktorisiert einen Ausdruck und die simplifyFunktion vereinfacht einen Ausdruck. Das folgende Beispiel zeigt das Konzept -

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x
syms y
factor(x^3 - y^3)
factor([x^2-y^2,x^3+y^3])
simplify((x^4-16)/(x^2-4))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =
   (x - y)*(x^2 + x*y + y^2)
ans =
   [ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)]
ans =
   x^2 + 4

MATLAB bietet verschiedene Möglichkeiten zur Lösung von Problemen der Differential- und Integralrechnung, zur Lösung von Differentialgleichungen beliebigen Grades und zur Berechnung von Grenzwerten. Das Beste ist, dass Sie die Diagramme komplexer Funktionen einfach zeichnen und Maxima, Minima und andere Schreibwarenpunkte in einem Diagramm überprüfen können, indem Sie die ursprüngliche Funktion sowie deren Ableitung lösen.

Dieses Kapitel befasst sich mit Kalkülproblemen. In diesem Kapitel werden wir Vorberechnungskonzepte diskutieren, dh die Berechnung von Funktionsgrenzen und die Überprüfung der Eigenschaften von Grenzen.

Im nächsten Kapitel Differential berechnen wir die Ableitung eines Ausdrucks und finden die lokalen Maxima und Minima in einem Diagramm. Wir werden auch das Lösen von Differentialgleichungen diskutieren.

Schließlich werden wir im Kapitel Integration die Integralrechnung diskutieren.

Grenzwerte berechnen

MATLAB bietet die limitFunktion zur Berechnung von Grenzwerten. In seiner grundlegendsten Form ist dielimit Die Funktion nimmt den Ausdruck als Argument und findet die Grenze des Ausdrucks, wenn die unabhängige Variable auf Null geht.

Berechnen wir zum Beispiel die Grenze einer Funktion f (x) = (x 3 + 5) / (x 4 + 7), da x gegen Null geht.

syms x
limit((x^3 + 5)/(x^4 + 7))

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   5/7

Die Grenzwertfunktion fällt in den Bereich des symbolischen Rechnens; Sie müssen die verwendensymsFunktion, um MATLAB mitzuteilen, welche symbolischen Variablen Sie verwenden. Sie können auch das Limit einer Funktion berechnen, da die Variable zu einer anderen Zahl als Null tendiert. Um lim x-> a (f (x)) zu berechnen , verwenden wir den Befehl limit mit Argumenten. Der erste ist der Ausdruck und der zweite ist die Zahl, der sich x nähert, hier ist es a .

Berechnen wir zum Beispiel die Grenze einer Funktion f (x) = (x-3) / (x-1), da x gegen 1 tendiert.

limit((x - 3)/(x-1),1)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   NaN

Nehmen wir ein anderes Beispiel:

limit(x^2 + 5, 3)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   14

Grenzwerte mit Oktave berechnen

Es folgt die Octave-Version des obigen Beispiels mit symbolic Paket, versuchen Sie, das Ergebnis auszuführen und zu vergleichen -

pkg load symbolic
symbols

x = sym("x");
subs((x^3+5)/(x^4+7),x,0)

Octave führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   0.7142857142857142857

Überprüfung der grundlegenden Eigenschaften von Grenzwerten

Der algebraische Grenzwertsatz bietet einige grundlegende Eigenschaften von Grenzwerten. Diese sind wie folgt -

Betrachten wir zwei Funktionen -

  • f (x) = (3x + 5) / (x - 3)
  • g (x) = x 2 + 1.

Berechnen wir die Grenzen der Funktionen, da x gegen 5 tendiert, beider Funktionen und überprüfen Sie die grundlegenden Eigenschaften der Grenzen mit diesen beiden Funktionen und MATLAB.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = limit(f, 4)
l2 = limit (g, 4)
lAdd = limit(f + g, 4)
lSub = limit(f - g, 4)
lMult = limit(f*g, 4)
lDiv = limit (f/g, 4)

Wenn Sie die Datei ausführen, wird Folgendes angezeigt:

l1 =
   17
  
l2 =
   17
  
lAdd =
   34
 
lSub =
   0
  
lMult =
   289
  
lDiv =
   1

Überprüfung der grundlegenden Eigenschaften von Grenzwerten mit Octave

Es folgt die Octave-Version des obigen Beispiels mit symbolic Paket, versuchen Sie, das Ergebnis auszuführen und zu vergleichen -

pkg load symbolic
symbols

x = sym("x");
f = (3*x + 5)/(x-3);
g = x^2 + 1;

l1 = subs(f, x, 4)
l2 = subs (g, x, 4)
lAdd = subs (f+g, x, 4)
lSub = subs (f-g, x, 4)
lMult = subs (f*g, x, 4)
lDiv = subs (f/g, x, 4)

Octave führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

l1 =
   17.0
l2 =
   17.0
lAdd =
   34.0
lSub =
   0.0
lMult =
   289.0
lDiv =
   1.0

Linke und rechte Grenzen

Wenn eine Funktion für einen bestimmten Wert der Variablen eine Diskontinuität aufweist, ist die Grenze zu diesem Zeitpunkt nicht vorhanden. Mit anderen Worten, Grenzen einer Funktion f (x) haben eine Diskontinuität bei x = a, wenn der Wert der Grenze, wenn x sich x von links nähert, nicht gleich dem Wert der Grenze ist, wenn sich x von rechts nähert.

Dies führt zum Konzept der linkshändigen und rechtshändigen Grenzen. Eine linkshändige Grenze ist definiert als die Grenze als x -> a von links, dh x nähert sich a für Werte von x <a. Eine rechtshändige Grenze ist definiert als die Grenze als x -> a von rechts, dh x nähert sich a für Werte von x> a. Wenn das Limit für Linkshänder und das Limit für Rechtshänder nicht gleich sind, existiert das Limit nicht.

Betrachten wir eine Funktion -

f(x) = (x - 3)/|x - 3|

Wir werden zeigen, dass lim x-> 3 f (x) nicht existiert. MATLAB hilft uns, diese Tatsache auf zwei Arten festzustellen -

  • Durch Zeichnen des Funktionsgraphen und Anzeigen der Diskontinuität.
  • Indem Sie die Grenzen berechnen und zeigen, dass beide unterschiedlich sind.

Die Grenzwerte für Linkshänder und Rechtshänder werden berechnet, indem die Zeichenfolgen 'left' und 'right' als letztes Argument an den Befehl limit übergeben werden.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')

Wenn Sie die Datei ausführen, zeichnet MATLAB das folgende Diagramm

Danach wird folgende Ausgabe angezeigt -

l =
   -1
  
r =
   1

MATLAB bietet die diffBefehl zum Berechnen symbolischer Ableitungen. In seiner einfachsten Form übergeben Sie die Funktion, die Sie unterscheiden möchten, als Argument an den Befehl diff.

Berechnen wir zum Beispiel die Ableitung der Funktion f (t) = 3t 2 + 2t -2

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms t
f = 3*t^2 + 2*t^(-2);
diff(f)

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

ans =
6*t - 4/t^3

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

t = sym("t");
f = 3*t^2 + 2*t^(-2);
differentiate(f,t)

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

ans =
   -(4.0)*t^(-3.0)+(6.0)*t

Überprüfung der elementaren Differenzierungsregeln

Lassen Sie uns kurz verschiedene Gleichungen oder Regeln zur Differenzierung von Funktionen angeben und diese Regeln überprüfen. Zu diesem Zweck schreiben wir f '(x) für eine Ableitung erster Ordnung und f "(x) für eine Ableitung zweiter Ordnung.

Es folgen die Regeln zur Differenzierung -

Regel 1

Für alle Funktionen f und g und alle reellen Zahlen a und b ist die Ableitung der Funktion -

h(x) = af(x) + bg(x) in Bezug auf x ist gegeben durch -

h'(x) = af'(x) + bg'(x)

Regel 2

Das sum und subtraction Regeln besagen, dass wenn f und g zwei Funktionen sind, f 'und g' ihre Ableitungen sind, dann

(f + g)' = f' + g'

(f - g)' = f' - g'

Regel 3

Das product Regel besagt, dass wenn f und g zwei Funktionen sind, f 'und g' ihre Ableitungen sind, dann

(f.g)' = f'.g + g'.f

Regel 4

Das quotient Regel besagt, dass wenn f und g zwei Funktionen sind, f 'und g' ihre Ableitungen sind, dann

(f/g)' = (f'.g - g'.f)/g2

Regel 5

Das polynomial oder elementare Potenzregel besagt, dass, wenn y = f(x) = xn, dann f' = n. x(n-1)

Ein direktes Ergebnis dieser Regel ist, dass die Ableitung einer Konstanten Null ist, dh wenn y = kalso jede Konstante

f' = 0

Regel 6

Das chain Regel besagt, dass Ableitung der Funktion einer Funktion h(x) = f(g(x)) in Bezug auf x ist,

h'(x)= f'(g(x)).g'(x)

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x
syms t

f = (x + 2)*(x^2 + 3)
der1 = diff(f)
f = (t^2 + 3)*(sqrt(t) + t^3)
der2 = diff(f)
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
der3 = diff(f)
f = (2*x^2 + 3*x)/(x^3 + 1)
der4 = diff(f)
f = (x^2 + 1)^17
der5 = diff(f)
f = (t^3 + 3* t^2 + 5*t -9)^(-6)
der6 = diff(f)

Wenn Sie die Datei ausführen, zeigt MATLAB das folgende Ergebnis an:

f =
   (x^2 + 3)*(x + 2)
 
   der1 =
   2*x*(x + 2) + x^2 + 3
  
f =
   (t^(1/2) + t^3)*(t^2 + 3)
 
   der2 =
   (t^2 + 3)*(3*t^2 + 1/(2*t^(1/2))) + 2*t*(t^(1/2) + t^3)
  
f =
   (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
  
der3 =
   (2*x - 2)*(3*x^3 - 5*x^2 + 2) - (- 9*x^2 + 10*x)*(x^2 - 2*x + 1)
 
f =
   (2*x^2 + 3*x)/(x^3 + 1)
  
der4 =
   (4*x + 3)/(x^3 + 1) - (3*x^2*(2*x^2 + 3*x))/(x^3 + 1)^2
  
f =
   (x^2 + 1)^17
  
der5 =
   34*x*(x^2 + 1)^16
  
f =
   1/(t^3 + 3*t^2 + 5*t - 9)^6
  
der6 =
   -(6*(3*t^2 + 6*t + 5))/(t^3 + 3*t^2 + 5*t - 9)^7

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
t = sym("t");
f = (x + 2)*(x^2 + 3) 
der1 = differentiate(f,x) 
f = (t^2 + 3)*(t^(1/2) + t^3) 
der2 = differentiate(f,t) 
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2) 
der3 = differentiate(f,x) 
f = (2*x^2 + 3*x)/(x^3 + 1) 
der4 = differentiate(f,x) 
f = (x^2 + 1)^17 
der5 = differentiate(f,x) 
f = (t^3 + 3* t^2 + 5*t -9)^(-6) 
der6 = differentiate(f,t)

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

f =

(2.0+x)*(3.0+x^(2.0))
der1 =

3.0+x^(2.0)+(2.0)*(2.0+x)*x
f =

(t^(3.0)+sqrt(t))*(3.0+t^(2.0))
der2 =

(2.0)*(t^(3.0)+sqrt(t))*t+((3.0)*t^(2.0)+(0.5)*t^(-0.5))*(3.0+t^(2.0))
f =

(1.0+x^(2.0)-(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))
der3 =

(-2.0+(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))+((9.0)*x^(2.0)-(10.0)*x)*(1.0+x^(2.0)-(2.0)*x)
f =

(1.0+x^(3.0))^(-1)*((2.0)*x^(2.0)+(3.0)*x)
der4 =

(1.0+x^(3.0))^(-1)*(3.0+(4.0)*x)-(3.0)*(1.0+x^(3.0))^(-2)*x^(2.0)*((2.0)*x^(2.0)+(3.0)*x)
f =

(1.0+x^(2.0))^(17.0)
der5 =

(34.0)*(1.0+x^(2.0))^(16.0)*x
f =

(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-6.0)
der6 =

-(6.0)*(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-7.0)*(5.0+(3.0)*t^(2.0)+(6.0)*t)

Ableitungen exponentieller, logarithmischer und trigonometrischer Funktionen

Die folgende Tabelle enthält die Ableitungen häufig verwendeter exponentieller, logarithmischer und trigonometrischer Funktionen.

Funktion Derivat
ca.x c a.x.ln ca (ln ist natürlicher Logarithmus)
ex e x
ln x 1 / x
lncx 1 / x.ln c
xx x x . (1 + ln x)
sin(x) cos (x)
cos(x) -sin (x)
tan(x) sec 2 (x) oder 1 / cos 2 (x) oder 1 + tan 2 (x)
cot(x) -csc 2 (x) oder -1 / sin 2 (x) oder - (1 + cot 2 (x))
sec(x) sec (x) .tan (x)
csc(x) -csc (x) .cot (x)

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x
y = exp(x)
diff(y)
y = x^9
diff(y)
y = sin(x)
diff(y)
y = tan(x)
diff(y)
y = cos(x)
diff(y)
y = log(x)
diff(y)
y = log10(x)
diff(y)
y = sin(x)^2
diff(y)
y = cos(3*x^2 + 2*x + 1)
diff(y)
y = exp(x)/sin(x)
diff(y)

Wenn Sie die Datei ausführen, zeigt MATLAB das folgende Ergebnis an:

y =
   exp(x)
   ans =
   exp(x)

y =
   x^9
   ans =
   9*x^8
  
y =
   sin(x)
   ans =
   cos(x)
  
y =
   tan(x)
   ans =
   tan(x)^2 + 1
 
y =
   cos(x)
   ans =
   -sin(x)
  
y =
   log(x)
   ans =
   1/x
  
y =
   log(x)/log(10)
   ans =
   1/(x*log(10))
 
y =
   sin(x)^2
   ans =
   2*cos(x)*sin(x)
 
y =
   cos(3*x^2 + 2*x + 1)
   ans =
   -sin(3*x^2 + 2*x + 1)*(6*x + 2)
  
y =
   exp(x)/sin(x)
   ans =
   exp(x)/sin(x) - (exp(x)*cos(x))/sin(x)^2

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
y = Exp(x)
differentiate(y,x)

y = x^9
differentiate(y,x)

y = Sin(x)
differentiate(y,x)

y = Tan(x)
differentiate(y,x)

y = Cos(x)
differentiate(y,x)

y = Log(x)
differentiate(y,x)

% symbolic packages does not have this support
%y = Log10(x)
%differentiate(y,x)

y = Sin(x)^2
differentiate(y,x)

y = Cos(3*x^2 + 2*x + 1)
differentiate(y,x)

y = Exp(x)/Sin(x)
differentiate(y,x)

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

y =

exp(x)
ans =

exp(x)
y =

x^(9.0)
ans =

(9.0)*x^(8.0)
y =

sin(x)
ans =

cos(x)
y =

tan(x)
ans =

1+tan(x)^2
y =

cos(x)
ans =

-sin(x)
y =

log(x)
ans =

x^(-1)
y =

sin(x)^(2.0)
ans =

(2.0)*sin(x)*cos(x)
y =

cos(1.0+(2.0)*x+(3.0)*x^(2.0))
ans =

-(2.0+(6.0)*x)*sin(1.0+(2.0)*x+(3.0)*x^(2.0))
y =

sin(x)^(-1)*exp(x)
ans =

sin(x)^(-1)*exp(x)-sin(x)^(-2)*cos(x)*exp(x)

Berechnen von Derivaten höherer Ordnung

Um höhere Ableitungen einer Funktion f zu berechnen, verwenden wir die Syntax diff(f,n).

Berechnen wir die zweite Ableitung der Funktion y = f (x) = x .e -3x

f = x*exp(-3*x);
diff(f, 2)

MATLAB führt den Code aus und gibt das folgende Ergebnis zurück:

ans =
9*x*exp(-3*x) - 6*exp(-3*x)

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
f = x*Exp(-3*x);
differentiate(f, x, 2)

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

ans =

(9.0)*exp(-(3.0)*x)*x-(6.0)*exp(-(3.0)*x)

Beispiel

Lassen Sie uns in diesem Beispiel ein Problem lösen. Vorausgesetzt, dass eine Funktiony = f(x) = 3 sin(x) + 7 cos(5x). Wir müssen herausfinden, ob die Gleichungf" + f = -5cos(2x) gilt wahr.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x
y = 3*sin(x)+7*cos(5*x);  % defining the function
lhs = diff(y,2)+y;        %evaluting the lhs of the equation
rhs = -5*cos(2*x);        %rhs of the equation
if(isequal(lhs,rhs))
   disp('Yes, the equation holds true');
else
   disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

No, the equation does not hold true
Value of LHS is: 
-168*cos(5*x)

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
y = 3*Sin(x)+7*Cos(5*x);           % defining the function
lhs = differentiate(y, x, 2) + y;  %evaluting the lhs of the equation
rhs = -5*Cos(2*x);                 %rhs of the equation

if(lhs == rhs)
   disp('Yes, the equation holds true');
else
   disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

No, the equation does not hold true
Value of LHS is: 
-(168.0)*cos((5.0)*x)

Finden der Maxima und Minima einer Kurve

Wenn wir nach den lokalen Maxima und Minima für einen Graphen suchen, suchen wir grundsätzlich nach den höchsten oder niedrigsten Punkten im Graphen der Funktion an einem bestimmten Ort oder nach einem bestimmten Wertebereich der symbolischen Variablen.

Für eine Funktion y = f (x) werden die Punkte im Diagramm genannt, an denen das Diagramm eine Steigung von Null aufweist stationary points. Mit anderen Worten sind stationäre Punkte, an denen f '(x) = 0 ist.

Um die stationären Punkte einer von uns differenzierten Funktion zu finden, müssen wir die Ableitung gleich Null setzen und die Gleichung lösen.

Beispiel

Finden wir die stationären Punkte der Funktion f (x) = 2x 3 + 3x 2 - 12x + 17

Führen Sie die folgenden Schritte aus:

First let us enter the function and plot its graph.

syms x
y = 2*x^3 + 3*x^2 - 12*x + 17;   % defining the function
ezplot(y)

MATLAB führt den Code aus und gibt den folgenden Plot zurück -

Hier ist der Octave-äquivalente Code für das obige Beispiel -

pkg load symbolic
symbols

x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");

ezplot(y)
print -deps graph.eps

Our aim is to find some local maxima and minima on the graph, so let us find the local maxima and minima for the interval [-2, 2] on the graph.

syms x
y = 2*x^3 + 3*x^2 - 12*x + 17;   % defining the function
ezplot(y, [-2, 2])

MATLAB führt den Code aus und gibt den folgenden Plot zurück -

Hier ist der Octave-äquivalente Code für das obige Beispiel -

pkg load symbolic
symbols

x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");

ezplot(y, [-2, 2])
print -deps graph.eps

Next, let us compute the derivative.

g = diff(y)

MATLAB führt den Code aus und gibt das folgende Ergebnis zurück:

g =
   6*x^2 + 6*x - 12

Hier ist das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

g =
   -12.0+(6.0)*x+(6.0)*x^(2.0)

Let us solve the derivative function, g, to get the values where it becomes zero.

s = solve(g)

MATLAB führt den Code aus und gibt das folgende Ergebnis zurück:

s =
   1
   -2

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
roots([6, 6, -12])

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

g =

-12.0+(6.0)*x^(2.0)+(6.0)*x
ans =

  -2
   1

This agrees with our plot. So let us evaluate the function f at the critical points x = 1, -2. Wir können einen Wert in einer symbolischen Funktion ersetzen, indem wir das verwenden subs Befehl.

subs(y, 1), subs(y, -2)

MATLAB führt den Code aus und gibt das folgende Ergebnis zurück:

ans =
   10
ans =
   37

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)

roots([6, 6, -12])
subs(y, x, 1), subs(y, x, -2)

ans =
   10.0
ans =
   37.0-4.6734207789940138748E-18*I

Daher betragen die Minimal- und Maximalwerte für die Funktion f (x) = 2x 3 + 3x 2 - 12x + 17 im Intervall [-2,2] 10 und 37.

Differentialgleichungen lösen

MATLAB bietet die dsolve Befehl zum symbolischen Lösen von Differentialgleichungen.

Die grundlegendste Form der dsolve Befehl zum Finden der Lösung für eine einzelne Gleichung lautet

dsolve('eqn')

Dabei ist eqn eine Textzeichenfolge, mit der die Gleichung eingegeben wird.

Es gibt eine symbolische Lösung mit einer Reihe beliebiger Konstanten zurück, die MATLAB mit C1, C2 usw. bezeichnet.

Sie können auch Anfangs- und Randbedingungen für das Problem als durch Kommas getrennte Liste angeben, die der Gleichung folgt:

dsolve('eqn','cond1', 'cond2',…)

Zum Verwenden des Befehls dsolve derivatives are indicated with a D. Zum Beispiel wird eine Gleichung wie f '(t) = -2 * f + Kosten (t) eingegeben als -

'Df = -2*f + cos(t)'

Höhere Ableitungen werden angezeigt, indem D in der Reihenfolge der Ableitung folgt.

Zum Beispiel sollte die Gleichung f "(x) + 2f '(x) = 5sin3x als - eingegeben werden

'D2y + 2Dy = 5*sin(3*x)'

Nehmen wir ein einfaches Beispiel einer Differentialgleichung erster Ordnung: y '= 5y.

s = dsolve('Dy = 5*y')

MATLAB führt den Code aus und gibt das folgende Ergebnis zurück:

s =
   C2*exp(5*t)

Nehmen wir ein anderes Beispiel einer Differentialgleichung zweiter Ordnung als: y "- y = 0, y (0) = -1, y '(0) = 2.

dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2')

MATLAB führt den Code aus und gibt das folgende Ergebnis zurück:

ans =
   exp(t)/2 - (3*exp(-t))/2

Die Integration befasst sich mit zwei grundsätzlich unterschiedlichen Arten von Problemen.

  • Im ersten Typ ist die Ableitung einer Funktion gegeben und wir wollen die Funktion finden. Daher kehren wir den Differenzierungsprozess grundsätzlich um. Dieser umgekehrte Prozess ist bekannt als Antidifferenzierung oder Auffinden der primitiven Funktion oder Auffinden einerindefinite integral.

  • Die zweite Art von Problemen besteht darin, eine sehr große Anzahl sehr kleiner Mengen zu addieren und dann eine Grenze zu setzen, wenn sich die Größe der Mengen Null nähert, während die Anzahl der Terme gegen unendlich tendiert. Dieser Prozess führt zur Definition derdefinite integral.

Bestimmte Integrale werden zum Auffinden von Fläche, Volumen, Schwerpunkt, Trägheitsmoment, von einer Kraft ausgeführter Arbeit und in zahlreichen anderen Anwendungen verwendet.

Finden eines unbestimmten Integrals mit MATLAB

Wenn per Definition die Ableitung einer Funktion f (x) f '(x) ist, dann sagen wir, dass ein unbestimmtes Integral von f' (x) in Bezug auf x f (x) ist. Da zum Beispiel die Ableitung (in Bezug auf x) von x 2 2x ist, können wir sagen, dass ein unbestimmtes Integral von 2x x 2 ist .

In Symbolen -

f'(x2) = 2x, deshalb,

∫ 2xdx = x2.

Das unbestimmte Integral ist nicht eindeutig, da die Ableitung von x 2 + c für jeden Wert einer Konstanten c ebenfalls 2x ist.

Dies wird in Symbolen ausgedrückt als -

∫ 2xdx = x2 + c.

Wobei c eine "beliebige Konstante" genannt wird.

MATLAB bietet eine intBefehl zum Berechnen des Integrals eines Ausdrucks. Um einen Ausdruck für das unbestimmte Integral einer Funktion abzuleiten, schreiben wir -

int(f);

Zum Beispiel aus unserem vorherigen Beispiel -

syms x 
int(2*x)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   x^2

Beispiel 1

Lassen Sie uns in diesem Beispiel das Integral einiger häufig verwendeter Ausdrücke finden. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x n

int(sym(x^n))
f = 'sin(n*t)'
int(sym(f))
syms a t
int(a*cos(pi*t))
int(a^x)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =
   piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])
f =
sin(n*t)
ans =
   -cos(n*t)/n
   ans =
   (a*sin(pi*t))/pi
   ans =
   a^x/log(a)

Beispiel 2

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x n
int(cos(x))
int(exp(x))
int(log(x))
int(x^-1)
int(x^5*cos(5*x))
pretty(int(x^5*cos(5*x)))
int(x^-5)
int(sec(x)^2)
pretty(int(1 - 10*x + 9 * x^2))
int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2)
pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))

Notiere dass der pretty Die Funktion gibt einen Ausdruck in einem besser lesbaren Format zurück.

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =
   sin(x)
 
ans =
   exp(x)
 
ans =
   x*(log(x) - 1)
 
ans =
   log(x)
 
ans =
(24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 - (4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5
                                    2             4 
   24 cos(5 x)   24 x sin(5 x)   12 x  cos(5 x)   x  cos(5 x) 
   ----------- + ------------- - -------------- + ------------ 
      3125            625             125              5 
   
        3             5 
 
   4 x  sin(5 x)   x  sin(5 x) 
   ------------- + ----------- 
         25              5
 
ans =
-1/(4*x^4)
 
ans =
tan(x)
        2 
  x (3 x  - 5 x + 1)
 
ans = 
- (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2
 
      6      5      4    3 
    7 x    3 x    5 x    x 
  - ---- - ---- + ---- + -- 
     12     5      8     2

Bestimmtes Integral mit MATLAB finden

Definitives Integral ist per Definition im Grunde die Grenze einer Summe. Wir verwenden bestimmte Integrale, um Bereiche wie den Bereich zwischen einer Kurve und der x-Achse und den Bereich zwischen zwei Kurven zu finden. Bestimmte Integrale können auch in anderen Situationen verwendet werden, in denen die erforderliche Menge als Grenze einer Summe ausgedrückt werden kann.

Das int Die Funktion kann für die definitive Integration verwendet werden, indem die Grenzen überschritten werden, über die Sie das Integral berechnen möchten.

Berechnen

wir schreiben,

int(x, a, b)

Zum Beispiel, um den Wert von zu berechnen

, schreiben wir -

int(x, 4, 9)

MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück:

ans =
   65/2

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
f = x;
c = [1, 0];
integral = polyint(c);

a = polyval(integral, 9) - polyval(integral, 4);
display('Area: '), disp(double(a));

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

Area: 

   32.500

Eine alternative Lösung kann unter Verwendung der von Octave bereitgestellten Quad () -Funktion wie folgt angegeben werden:

pkg load symbolic
symbols

f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);

display('Area: '), disp(double(a));

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

Area: 
   32.500

Beispiel 1

Berechnen wir die Fläche zwischen der x-Achse und der Kurve y = x 3 −2x + 5 und den Ordinaten x = 1 und x = 2.

Der erforderliche Bereich ist gegeben durch -

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

f = x^3 - 2*x +5;
a = int(f, 1, 2)
display('Area: '), disp(double(a));

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

a =
23/4
Area: 
   5.7500

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
f = x^3 - 2*x +5;
c = [1, 0, -2, 5];
integral = polyint(c);

a = polyval(integral, 2) - polyval(integral, 1);
display('Area: '), disp(double(a));

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

Area: 

   5.7500

Eine alternative Lösung kann unter Verwendung der von Octave bereitgestellten Quad () -Funktion wie folgt angegeben werden:

pkg load symbolic
symbols

x = sym("x");
f = inline("x^3 - 2*x +5");

[a, ierror, nfneval] = quad(f, 1, 2);
display('Area: '), disp(double(a));

Octave führt den Code aus und gibt das folgende Ergebnis zurück:

Area: 
   5.7500

Beispiel 2

Finden Sie die Fläche unter der Kurve: f (x) = x 2 cos (x) für −4 ≤ x ≤ 9.

Erstellen Sie eine Skriptdatei und schreiben Sie den folgenden Code:

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));

Wenn Sie die Datei ausführen, zeichnet MATLAB das Diagramm -

Die Ausgabe ist unten angegeben -

a = 
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
Area: 
   0.3326

Es folgt das Oktaväquivalent der obigen Berechnung -

pkg load symbolic
symbols

x = sym("x");
f = inline("x^2*cos(x)");

ezplot(f, [-4,9])
print -deps graph.eps

[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));

MATLAB repräsentiert Polynome als Zeilenvektoren, die Koeffizienten enthalten, die nach absteigenden Potenzen geordnet sind. Zum Beispiel könnte die Gleichung P (x) = x 4 + 7x 3 - 5x + 9 dargestellt werden als -

p = [1 7 0 -5 9];

Auswertung von Polynomen

Das polyvalDie Funktion wird zum Auswerten eines Polynoms bei einem bestimmten Wert verwendet. Zum Beispiel, um unser vorheriges Polynom zu bewertenpGeben Sie bei x = 4 -

p = [1 7 0  -5 9];
polyval(p,4)

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück:

ans = 693

MATLAB bietet auch die polyvalmFunktion zur Auswertung eines Matrixpolynoms. Ein Matrixpolynom ist apolynomial mit Matrizen als Variablen.

Lassen Sie uns zum Beispiel eine quadratische Matrix X erstellen und das Polynom p bei X - auswerten.

p = [1 7 0  -5 9];
X = [1 2 -3 4; 2 -5 6 3; 3 1 0 2; 5 -7 3 8];
polyvalm(p, X)

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück:

ans =
      2307       -1769        -939        4499
      2314       -2376        -249        4695
      2256       -1892        -549        4310
      4570       -4532       -1062        9269

Die Wurzeln von Polynomen finden

Das rootsFunktion berechnet die Wurzeln eines Polynoms. Um beispielsweise die Wurzeln unseres Polynoms p zu berechnen, geben Sie -

p = [1 7 0  -5 9];
r = roots(p)

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück:

r =
   -6.8661 + 0.0000i
   -1.4247 + 0.0000i
   0.6454 + 0.7095i
   0.6454 - 0.7095i

Die Funktion polyist eine Umkehrung der Wurzelfunktion und kehrt zu den Polynomkoeffizienten zurück. Zum Beispiel -

p2 = poly(r)

MATLAB führt die obigen Anweisungen aus und gibt das folgende Ergebnis zurück:

p2 =

   Columns 1 through 3:

      1.00000 + 0.00000i   7.00000 + 0.00000i   0.00000 + 0.00000i

   Columns 4 and 5:

      -5.00000 - 0.00000i   9.00000 + 0.00000i

Polynomkurvenanpassung

Das polyfitDie Funktion ermittelt die Koeffizienten eines Polynoms, das im Sinne der kleinsten Quadrate zu einem Datensatz passt. Wenn x und y zwei Vektoren sind, die die x- und y-Daten enthalten, die an ein n-Grad-Polynom angepasst werden sollen, erhalten wir das Polynom, das die Daten durch Schreiben von - anpasst.

p = polyfit(x,y,n)

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67];   %data
p = polyfit(x,y,4)   %get the polynomial

% Compute the values of the polyfit estimate over a finer range, 
% and plot the estimate over the real data values for comparison:
x2 = 1:.1:6;          
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on

Wenn Sie die Datei ausführen, zeigt MATLAB das folgende Ergebnis an:

p =
   4.1056  -47.9607  222.2598 -362.7453  191.1250

Und zeichnet die folgende Grafik -

MATLAB bietet Befehle zum Arbeiten mit Transformationen wie Laplace- und Fourier-Transformationen. Transformationen werden in Wissenschaft und Technik als Werkzeug zur Vereinfachung der Analyse und zur Betrachtung von Daten aus einem anderen Blickwinkel verwendet.

Zum Beispiel erlaubt uns die Fourier-Transformation, ein als Funktion der Zeit dargestelltes Signal in eine Funktion der Frequenz umzuwandeln. Mit der Laplace-Transformation können wir eine Differentialgleichung in eine algebraische Gleichung umwandeln.

MATLAB bietet die laplace, fourier und fft Befehle zum Arbeiten mit Laplace-, Fourier- und Fast Fourier-Transformationen.

Die Laplace-Transformation

Die Laplace-Transformation einer Funktion der Zeit f (t) ist gegeben durch das folgende Integral -

Die Laplace-Transformation wird auch als Transformation von f (t) zu F (s) bezeichnet. Sie können sehen, dass dieser Transformations- oder Integrationsprozess f (t), eine Funktion der symbolischen Variablen t, in eine andere Funktion F (s) mit einer anderen Variablen s konvertiert.

Die Laplace-Transformation wandelt Differentialgleichungen in algebraische um. Um eine Laplace-Transformation einer Funktion f (t) zu berechnen, schreiben Sie -

laplace(f(t))

Beispiel

In diesem Beispiel berechnen wir die Laplace-Transformation einiger häufig verwendeter Funktionen.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms s t a b w

laplace(a)
laplace(t^2)
laplace(t^9)
laplace(exp(-b*t))
laplace(sin(w*t))
laplace(cos(w*t))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =
   1/s^2

ans =
   2/s^3

ans =
   362880/s^10

ans =
   1/(b + s)
  
ans =
   w/(s^2 + w^2)
  
ans =
   s/(s^2 + w^2)

Die inverse Laplace-Transformation

Mit MATLAB können wir die inverse Laplace-Transformation mit dem Befehl berechnen ilaplace.

Zum Beispiel,

ilaplace(1/s^3)

MATLAB führt die obige Anweisung aus und zeigt das Ergebnis an -

ans =
   t^2/2

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms s t a b w

ilaplace(1/s^7)
ilaplace(2/(w+s))
ilaplace(s/(s^2+4))
ilaplace(exp(-b*t))
ilaplace(w/(s^2 + w^2))
ilaplace(s/(s^2 + w^2))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans =
   t^6/720

ans =
   2*exp(-t*w)

ans =
   cos(2*t)

ans =
   ilaplace(exp(-b*t), t, x)

ans =
   sin(t*w)

ans =
   cos(t*w)

Die Fourier-Transformationen

Fourier-Transformationen transformieren üblicherweise eine mathematische Funktion der Zeit f (t) in eine neue Funktion, die manchmal mit oder F bezeichnet wird und deren Argument die Frequenz mit Einheiten von Zyklen / s (Hertz) oder Bogenmaß pro Sekunde ist. Die neue Funktion ist dann als Fourier-Transformation und / oder Frequenzspektrum der Funktion f bekannt.

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

syms x 
f = exp(-2*x^2);     %our function
ezplot(f,[-2,2])     % plot of our function
FT = fourier(f)      % Fourier transform

Wenn Sie die Datei ausführen, zeichnet MATLAB das folgende Diagramm:

Das folgende Ergebnis wird angezeigt -

FT =
   (2^(1/2)*pi^(1/2)*exp(-w^2/8))/2

Zeichnen der Fourier-Transformation als -

ezplot(FT)

Gibt die folgende Grafik -

Inverse Fourier-Transformationen

MATLAB bietet die ifourierBefehl zum Berechnen der inversen Fourier-Transformation einer Funktion. Zum Beispiel,

f = ifourier(-2*exp(-abs(w)))

MATLAB führt die obige Anweisung aus und zeigt das Ergebnis an -

f =
   -2/(pi*(x^2 + 1))

GNU Octave ist eine Programmiersprache auf hoher Ebene wie MATLAB und größtenteils mit MATLAB kompatibel. Es wird auch für numerische Berechnungen verwendet.

Octave hat die folgenden gemeinsamen Funktionen mit MATLAB:

  • Matrizen sind grundlegende Datentypen
  • Es verfügt über eine integrierte Unterstützung für komplexe Zahlen
  • Es verfügt über integrierte mathematische Funktionen und Bibliotheken
  • Es unterstützt benutzerdefinierte Funktionen

GNU Octave ist auch frei verteilbare Software. Sie können es unter den Bedingungen der GNU General Public License (GPL), wie von der Free Software Foundation veröffentlicht, weitergeben und / oder ändern.

MATLAB gegen Oktave

Die meisten MATLAB-Programme werden in Octave ausgeführt, aber einige der Octave-Programme werden möglicherweise nicht in MATLAB ausgeführt, da Octave eine Syntax zulässt, die MATLAB nicht zulässt.

Beispielsweise unterstützt MATLAB nur einfache Anführungszeichen, Octave unterstützt jedoch sowohl einfache als auch doppelte Anführungszeichen zum Definieren von Zeichenfolgen. Wenn Sie nach einem Tutorial zu Octave suchen, lesen Sie dieses Tutorial von Anfang an durch, das sowohl MATLAB als auch Octave behandelt.

Kompatible Beispiele

Fast alle in diesem Tutorial behandelten Beispiele sind sowohl mit MATLAB als auch mit Octave kompatibel. Versuchen wir, das folgende Beispiel in MATLAB und Octave zu verwenden, das das gleiche Ergebnis ohne Syntaxänderungen liefert.

In diesem Beispiel wird eine 3D-Oberflächenkarte für die Funktion g = xe - (x 2 + y 2 ) erstellt . Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

Wenn Sie die Datei ausführen, zeigt MATLAB die folgende 3D-Zuordnung an:

Nicht kompatible Beispiele

Obwohl alle Kernfunktionen von MATLAB in Octave verfügbar sind, gibt es einige Funktionen, z. B. Differential & Integration Calculus, die nicht in beiden Sprachen genau übereinstimmen. In diesem Tutorial wurde versucht, beide Arten von Beispielen anzugeben, bei denen sie sich in ihrer Syntax unterschieden.

Betrachten Sie das folgende Beispiel, in dem MATLAB und Octave unterschiedliche Funktionen verwenden, um die Fläche einer Kurve zu erhalten: f (x) = x 2 cos (x) für −4 ≤ x ≤ 9. Es folgt die MATLAB-Version des Codes -

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));

Wenn Sie die Datei ausführen, zeichnet MATLAB das Diagramm -

Das folgende Ergebnis wird angezeigt

a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
Area: 
   0.3326

Um jedoch in Octave eine Fläche mit derselben Kurve zu erhalten, müssen Sie diese verwenden symbolic Paket wie folgt -

pkg load symbolic
symbols

x = sym("x");
f = inline("x^2*cos(x)");

ezplot(f, [-4,9])
print -deps graph.eps

[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));

Simulink ist eine in MATLAB integrierte simulations- und modellbasierte Entwurfsumgebung für dynamische und eingebettete Systeme. Simulink, ebenfalls von MathWorks entwickelt, ist ein grafisches Programmiersprachenwerkzeug für den Datenfluss zum Modellieren, Simulieren und Analysieren dynamischer Systeme mit mehreren Domänen. Grundsätzlich handelt es sich um ein grafisches Blockdiagramm-Tool mit anpassbaren Blockbibliotheken.

Sie können MATLAB-Algorithmen in Modelle integrieren und die Simulationsergebnisse zur weiteren Analyse in MATLAB exportieren.

Simulink unterstützt -

  • Design auf Systemebene
  • simulation
  • automatische Codegenerierung
  • Testen und Verifizieren von eingebetteten Systemen

Es gibt mehrere andere Add-On-Produkte von MathWorks sowie Hardware- und Softwareprodukte von Drittanbietern, die für die Verwendung mit Simulink verfügbar sind.

Die folgende Liste enthält eine kurze Beschreibung einiger von ihnen -

  • Stateflow ermöglicht die Entwicklung von Zustandsautomaten und Flussdiagrammen.

  • Simulink Coder ermöglicht die automatische Generierung von C-Quellcode für die Echtzeitimplementierung von Systemen.

  • xPC Target zusammen mit x86-based real-time systems Bereitstellung einer Umgebung zum Simulieren und Testen von Simulink- und Stateflow-Modellen in Echtzeit auf dem physischen System.

  • Embedded Coder unterstützt bestimmte eingebettete Ziele.

  • HDL Coder ermöglicht die automatische Generierung von synthetisierbarem VHDL und Verilog.

  • SimEvents bietet eine Bibliothek mit grafischen Bausteinen zur Modellierung von Warteschlangensystemen.

Simulink ist in der Lage, Modelle systematisch zu überprüfen und zu validieren, indem der Modellstil überprüft, die Anforderungen nachverfolgt und die Modellabdeckung analysiert wird.

Mit Simulink Design Verifier können Sie Entwurfsfehler identifizieren und Testfallszenarien für die Modellprüfung generieren.

Verwenden von Simulink

Geben Sie zum Öffnen von Simulink den MATLAB-Arbeitsbereich ein -

simulink

Simulink öffnet mit dem Library Browser. Der Bibliotheksbrowser wird zum Erstellen von Simulationsmodellen verwendet.

Im linken Fensterbereich finden Sie mehrere Bibliotheken, die nach verschiedenen Systemen kategorisiert sind. Wenn Sie auf jeden einzelnen klicken, werden die Entwurfsblöcke im rechten Fensterbereich angezeigt.

Gebäudemodelle

Klicken Sie auf, um ein neues Modell zu erstellen NewSchaltfläche in der Symbolleiste des Bibliotheksbrowsers. Dies öffnet ein neues Modellfenster ohne Titel.

Ein Simulink-Modell ist ein Blockdiagramm.

Modellelemente werden hinzugefügt, indem Sie die entsprechenden Elemente im Bibliotheksbrowser auswählen und in das Modellfenster ziehen.

Alternativ können Sie die Modellelemente kopieren und in das Modellfenster einfügen.

Beispiele

Ziehen Sie Elemente aus der Simulink-Bibliothek und legen Sie sie dort ab, um Ihr Projekt zu erstellen.

In diesem Beispiel werden zwei Blöcke für die Simulation verwendet - A. Source (ein Signal) und a Sink(ein Umfang). Ein Signalgenerator (die Quelle) erzeugt ein analoges Signal, das dann vom Oszilloskop (der Senke) grafisch dargestellt wird.

Ziehen Sie zunächst die erforderlichen Blöcke aus der Bibliothek in das Projektfenster. Verbinden Sie dann die Blöcke miteinander. Ziehen Sie dazu die Anschlüsse von den Verbindungspunkten eines Blocks zu denen eines anderen.

Ziehen wir einen 'Sinus'-Block in das Modell.

Wählen Sie "Sinks" aus der Bibliothek und ziehen Sie einen "Scope" -Block in das Modell.

Ziehen Sie eine Signalleitung vom Ausgang des Sinuswellenblocks zum Eingang des Scope-Blocks.

Führen Sie die Simulation durch Drücken von 'RunSchaltfläche ', wobei alle Parameter standardmäßig beibehalten werden (Sie können sie über das Menü Simulation ändern)

Sie sollten das folgende Diagramm aus dem Bereich erhalten.