Vorlesung 16.10.2020

Vektoren und Matrizen (change font size in editor: Preference -> Fonts) „In der IT-Branche liegt die Zahl ...“

Contents

Zeilenvektor (dreimal derselbe Vektor)

clc; clear;

x = [1 , 3 , 5 , 7, 9];        % Elementaufzaehlung mit ","
x = 1:2:9                      % Doppelpunktnotation (wenn moeglich)
                               % ab 1 bis 9 mit Schrittweite 2
x = linspace(1,9, 5);          % 5 aequidistante Elemente aus dem Intervall [1,9]

size(x)                        % Dimensionen
length(x)                      % Anzahl der Vektorelemente
x =

     1     3     5     7     9


ans =

     1     5


ans =

     5

Spaltenvektor

y = [2;4;6;8;10]; % Spaltenvektor mit ";"
y = (2:2:10).'    % Zeilenvektor mit .'  in Spaltenvektor umwandeln,
                  %   hier waere auch die Zuweisung y = y.'  moeglich gewesen.

size(y)           % Dimensionen
length(y)         % Anzahl der Vektorelemente
y =

     2
     4
     6
     8
    10


ans =

     5     1


ans =

     5

Elementweise Operation: .^ ./ .*

x = linspace(0,10,51);
y = exp(sin(x).^2)+x./(1+x);           % Elementweise Operationen
plot(x,y)
% aber  +  -
z = x+y;                               % elementweise addition

dynamisch wachsender Vektor

clear
x = [];                             %               0x0
x = [x , 1];                        % Skalar        1x1
x = [x , 3:2:9];                    % Zeilenvektor  1x5

Generiere Vektor aus zwei Vektoren

y = 2:2:10;                 % Zeilenvektor  1x5
whos
x = [x, y];                 % Vektoren (Matrizen) muessen gleiche Zeilenanzahl haben!
size(x)
  Name      Size            Bytes  Class     Attributes

  x         1x5                40  double              
  y         1x5                40  double              


ans =

     1    10

Indizes

z = x(2:2:end)              % auf jedes 2. Element zugreifen
z = x(y)                    % aequivalent ueber Indexvektor y
z =

     3     7     2     6    10


z =

     3     7     2     6    10

Loeschen von Vektorelementen

v = z                       % wir benoetigen z weiter unter nochmal
v(2) = []                   % 2. Element aus Vektor v entfernen
v(1:2) = []                 % die ersten beiden Elemente aus Vektor v entfernen
v(:) = []                   % alle Vektorelemente entfernen ( v = [] geht auch)

clear v                     % Entferene Varianle v aus Workspace
v =

     3     7     2     6    10


v =

     3     2     6    10


v =

     6    10


v =

     []

generiere Matrix ueber Elementliste, zeilen-/spaltenweiser Zugriff

A = [3 ,-2, 5, 4 ; 2, 4, 0, 1; 0, -1, 3, 2]
size(A)                     % 3x4 Matrix

B = A(2,:)                  % 2. Zeile der Matrix
B = A(2,1:end);             %    dasselbe
B = A(2,1:1:end);           %    dasselbe

C = A(:,3)                  % 3. Spalte der Matrix
A =

     3    -2     5     4
     2     4     0     1
     0    -1     3     2


ans =

     3     4


B =

     2     4     0     1


C =

     5
     0
     3

Generiere Matrix durch Kombination von Vektoren (Matrizen)

whos y z
A = [ y; z]                     % 2x5 Vektoren (Matrizen) muessen gleiche Spalten anzahl haben!
B = [ y.', z.']                  % 5x2 Vektoren (Matrizen) muessen gleiche Zeilenanzahl haben!
A = [A; y]                       % 3x5 Vektoren (Matrizen) muessen gleiche Spaltenanzahl haben!
%                                  Zweite Zeile von A als neue 4. Zeile anfuegen
A = [A ; A(2,:)]                 % 4x5
%                                  4.Spalte von A als neue 1.Spalte
A = [ A(:,4) , A ]               % 4x6
%                                  Loeschen der ehemals 4. Spalte (jetzt
%                                  die 5. Spalte
A(:,5) = []                      % 4x5
%                                  obige 2 Anweisungen in einem Schritt
A = [ A(:,4), A(:,1:3), A(:,5:end)]
%                                  genaus dasselbe, aber mit Index-Vektor
A = A(:,[4, 1:3, 5:end])
  Name      Size            Bytes  Class     Attributes

  y         1x5                40  double              
  z         1x5                40  double              


A =

     2     4     6     8    10
     3     7     2     6    10


B =

     2     3
     4     7
     6     2
     8     6
    10    10


A =

     2     4     6     8    10
     3     7     2     6    10
     2     4     6     8    10


A =

     2     4     6     8    10
     3     7     2     6    10
     2     4     6     8    10
     3     7     2     6    10


A =

     8     2     4     6     8    10
     6     3     7     2     6    10
     8     2     4     6     8    10
     6     3     7     2     6    10


A =

     8     2     4     6    10
     6     3     7     2    10
     8     2     4     6    10
     6     3     7     2    10


A =

     6     8     2     4    10
     2     6     3     7    10
     6     8     2     4    10
     2     6     3     7    10


A =

     4     6     8     2    10
     7     2     6     3    10
     4     6     8     2    10
     7     2     6     3    10

Loeschen von Zeilen/Spalten einer Matrix

%                                  Loesche jede 2. Zeile
A(1:2:end,:) = []                % 2x5

%                                  Losche die beiden letzten Spalten
A(:,end-1:end) = []              % 2x3
A =

     7     2     6     3    10
     7     2     6     3    10


A =

     7     2     6
     7     2     6