[Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen] | |
Mathematik-Online-Kurs: MATLAB - Weitere Datentypen | |
Logische Matrizen |
[vorangehende Seite] [nachfolgende Seite] | [Gesamtverzeichnis][Seitenübersicht] |
als Rückgabewerte logischer Funktionen wie isempty, isinf, ischar usw. oder durch explizite Konvertierung mittels logical.==
(gleich),~=
(ungleich),<
(kleiner),<=
(kleiner gleich),>
(größer),>=
(größer gleich),
Beispiel einer logischen Matrix:
>> L= ([1 2 3; 4 5 6; 7 8 9]<=5) L = 1 1 1 1 1 0 0 0 0 >> whos L Name Size Bytes Class L 3x3 9 logical array Grand total is 9 elements using 9 bytes
Verfügbar sind unter anderem die folgenden logischen Operatoren bzw. Funktionen:
&
(und),|
(oder),~
(Negation), and, or, not, xor, any, all
Logische Matrizen können auch zur Indizierung verwendet werden. Dabei werden jene Elemente ausgewählt, deren korrespondierende Elemente der logischen Matrix den Wert wahr besitzen. Nützlich beim Umgang mit logischen Matrizen ist auch die Funktion find, welche die Indizes jener Einträge zurück gibt, die von 0 verschieden sind.
>> M=magic(4) M = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> mod(M,2)==0 ans = 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 >> L=(M<4)|(M>12) L = 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 >> find(L)' ans = 1 5 8 9 12 13 16 >> whos Name Size Bytes Class L 4x4 16 logical array M 4x4 128 double array ans 1x7 56 double array Grand total is 39 elements using 200 bytesDer Ergebnisvektor des Befehls find enthält dabei die Indizes der von 0 verschiedenen Elemente bei spaltenweiser Nummerierung der Elemente von L.
Matrizen, bei deren Definition nur die Elemente 1 und 0 verwendet werden, sind nicht automatisch logische Matrizen. Die Typumwandlung kann jedoch mit Hilfe der Funktion logical erzwungen werden:
>> L=[0 1 1; 0 1 1] L = 0 1 1 0 1 1 >> whos L Name Size Bytes Class L 2x3 48 double array Grand total is 6 elements using 48 bytes >> L=logical(L) L = 0 1 1 0 1 1 >> whos L Name Size Bytes Class L 2x3 6 logical array Grand total is 6 elements using 6 bytes
Indizierung mit logischen Ausdrücken bzw. find-Resultaten:
>> M(M~=7 & M<10)=0 M = 16 0 0 13 0 11 10 0 0 7 0 12 0 14 15 0 >> M(find(M)') ans = 16 11 7 14 10 15 13 12
[vorangehende Seite] [nachfolgende Seite] | [Gesamtverzeichnis][Seitenübersicht] |
automatisch erstellt am 5.2.2008 |