Contents
- Vorlesung 14.10.2022
- Zeilenvektor (dreimal derselbe Vektor)
- Spaltenvektor
- Elementweise Operation: .^ ./ .*
- dynamisch wachsender Vektor
- Generiere Vektor aus zwei Vektoren
- Indizes
- Loeschen von Vektorelementen
- generiere Matrix ueber Elementliste, zeilen-/spaltenweiser Zugriff
- Generiere Matrix durch Kombination von Vektoren (Matrizen)
- Loeschen von Zeilen/Spalten einer Matrix
Vorlesung 14.10.2022
Vektoren und Matrizen (change font size in editor: Preference -> Fonts) „In der IT-Branche liegt die Zahl ...“
close all; clc; clear;
Zeilenvektor (dreimal derselbe Vektor)
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