%Pascal/MATLAB-Kurs WS 2001, Gerhard Opfer
%Es geht darum, mit moeglichst wenig Rechenaufwand einen Vektor 
%als Matrix zu wiederholen. Die jetzt zu besprechende Vervielfachungstechnik 
%ist als "Tonys Trick" bekannt.

%Ist x ein gegebener Spaltenvektor, so moechte man eine Matrix herstellen, 
%in der jede Spalte x enthaelt, und entsprechend: ist y ein Zeilenvektor,
%so moechte man eine Matrix erzeugen, in der jede Zeile mit y uebereinstimmt. Sei
x=[1:5]'       %ein Spaltenvektor, dann ist 
x(:,1)         %derselbe Vektor. Ein Vektor ist also auch eine Matrix.
x(:,[1,1])     %ist derselbe Vektor zweimal nebeneinander geschrieben und
x(:,[1;1])     %liefert dieselbe Verdoppelung. Entsprechend
x(:,ones(6,1)) %wird jetzt x als Spalte versechsfacht. Dasselbe geht auch mit Zeilen.
y=1./[1:6]
y(ones(5,1),:)
y(ones(1,5),:) %liefern beide eine Verfuenffachung von y

%Man kann also leicht die dyadische Summe von x und y  bilden:
%vgl. Programm a05_01.m
X=x(:,ones(length(y),1))
Y=y(ones(1,length(x)),:)
dyadische_Summe=X+Y
%Man braucht genau m*n (hier also 30) Additionen (flops)
