Mo Logo [Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen]

Mathematik-Online-Aufgabensammlung: Lösung zu

Aufgabe 1510: Konstruktion von Matrizen ohne Schleifen


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Erzeugen Sie (ohne Verwendung von Schleifen) möglichst einfach $ n\times m$-Matrizen mit folgenden Elementen in Matlab:

a) $ a_{k,\ell} = k*\ell$,     b) $ b_{k,\ell} = k/\ell$,     c) $ c_{k,\ell} = k^\ell$,

d) $ d_{k,\ell} = \max \{ k,\ell\}$,     e) $ e_{k,\ell} = 1$ falls $ k=\ell\pm 1$, 0 sonst.


n=4;m=7;

format rat

% A entsteht mit Matrixmultiplikation aus zwei Vektoren
A=[1:n]'*[1:m]

% B entsteht mit Matrixmultiplikation, zweiter Vektor beinhaltet
% Kehrwerte
B=[1:n]'*(1./[1:m])

% C erste Variante: Matrizen mit Matrixmultiplikation und ones
C=([1:n]'*ones(1,m)).^(ones(n,1)*[1:m])

% C zweite Variante: Matrizen mit repmat
C=repmat([1:n]',1,m).^repmat([1:m],n,1)

% C dritte Variante: Matrizen mit ndgrid
[K,L]=ndgrid([1:n],[1:m]);
C=K.^L


% D erste Variante: Matrizen mit repmat
D=max(repmat([1:n]',1,m),repmat([1:m],n,1))

% D zweite Variante: Matrizen mit ndgrid (s.o.)
D=max(K,L)


% E erste Variante: Logische Matrix 
E=(abs(K-L)==1)

% E zweite Variante: Sparsmatrix umwandeln
E=full(spdiags(ones(n,2),[-1,1],n,m))  

% E dritte Variante: Indizes der Eins-Einträge bestimmen
E=zeros(n,m);
E(2:n+1:(n+1)*min(n-2,m-1)+2)=1;
E(n+1:n+1:(n+1)*min(n,m-1))=1  


format

[Zurück zur Aufgabe]

  automatisch erstellt am 4.  5. 2007