Die Matrix
Mehrdimensionale Felder oder kurz Matrix, lassen sich dadurch realisieren,
dass man jede Dimension separat in eckigen Klammern angibt. Beispielsweise
definiert
int M [3] [2] ;
ein Feld M mit 3x2 = 6 Werten vom Typ int. Die Initialisierung könnte
beispielsweise folgendermaßen aussehen.
int M [3] [2] = { // [3] [2] = Dreierfeld 2 mal
erzeugen
{ 0, 1, 2 },
{ 3, 4, 5 }
}
Allerdings ist es nicht erforderlich, die geschweiften Klammern doppelt zu
verschachteln. Die folgende Darstellung ist dazu äquivalent (aber
unübersichtlicher).
int M [3] [2] = { 0, 1, 2, 3, 4, 5 };
Auch beim Zugriff auf die Elemente eines mehrdimensionalen Feldes müssen alle
Indizes in separaten eckigen Klammern angegeben werden. Als Beispiel betrachten
wir die Multiplikation einer Matrix mit einem Vektor.
main(){
const int Zeilenzahl =4;
const int Spaltenzahl =3;
double m [ Zeilenzahl ] [ Spaltenzahl ] ;
double x [ Spaltenzahl ] , y [ Zeilenzahl ] ;
int i, j; double sum;
//Matrix einlesen
for (i=0; i<Zeilenzahl; i=i+l) for (j=0; j<Spaltenzahl; j=j+1){
cout << "Geben Sie m[" << i+1 << ","
<< j+1 << "] ein"
<< endl;
cin >> m [i] [j] ;
}
//Vektor x einlesen
for (i=0; i<Spaltenzahl; i=i+1) {
cout << "Geben Sie x[" << i << "] ein" << endl;
cin >> x [i] ;
}
// Berechnung von y=m*x
for (i=0; i< Zeilenzahl; i=i+1) {
// Berechnung von y[i]
sum=0;
for (j=0; j<Spaltenzahl; j=j+1)
sum = sum + m [i] [j] * x [j] ; y[i] = sum;
//Ausgabe von y als Zeilenvektor
cout << "y=( ";
for (i=0; i<Zeilenzahl; i=i+1) {
cout y[i] ;
if (i<Zeilenzahl-1)
cout << " , ";
}
cout ")";
}