Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Mathematische Funktionen

Beitrag: eine quadratische Matrix im Uhrzeigersinn drehen *

Aufgabe
Mit den Funktionen COS,SIN und PI kann eine quadratische Matrix im Uhrzeigersinn um 90, 180 oder 270 Grad gedreht werden.
Autor: Klaus Kühnlein

       A               B               C               D               E               F       
1 1           
2            
3 11  12  13  14  15  16  
4 21  22  23  24  25  26  
5 31  32  33  34  35  36  
6 41  42  43  44  45  46  
7 51  52  53  54  55  56  
8 61  62  63  64  65  66  
9            
10 61  51  41  31  21  11  
11 62  52  42  32  22  12  
12 63  53  43  33  23  13  
13 64  54  44  34  24  14  
14 65  55  45  35  25  15  
15 66  56  46  36  26  16 



Lösung
In A1 wird vorgegeben, wie oft um 90 Grad gedreht werden soll
1=90 Grad; 2=180 Grad; 3=270 Grad; 4=360 Grad

6x6-Matrix:

In A3:F8 steht die Ursprungsmatrix.

Selektiere A10:F15 und gebe
{=INDEX(A3:F8;3,5+(3,5-SPALTE(A:F))*COS((A1-1)*PI()/2)-(ZEILE(1:6)-3,5)*SIN((A1-1)*PI()/2);3,5+(3,5-SPALTE(A:F))*SIN((A1-1)*PI()/2)+(ZEILE(1:6)-3,5)*COS((A1-1)*PI()/2))}
als Matrixformel ein.


8x8-Matrix:

In A3:H10 steht die Ursprungsmatrix

Selektiere A12:H19 und gebe
{=INDEX(A3:H10;4,5+(4,5-SPALTE(A:H))*COS((A1-1)*PI()/2)-(ZEILE(1:8)-4,5)*SIN((A1-1)*PI()/2);4,5+(4,5-SPALTE(A:H))*SIN((A1-1)*PI()/2)+(ZEILE(1:8)-4,5)*COS((A1-1)*PI()/2))}
als Matrixformel ein

Ergänzung/Vereinfachung vom 23.04.2006 (Matthias5)
Soll die quadratische Matrix (beginnend in A2) definitiv nur einmal (nach rechts) um 90° gedreht werden, funktioniert das mit folgender arraylosen und untrigonometrischen Formel in X2:
=WENN(ANZAHL2($W$2:W2)+ZEILE(A1)-1 < ANZAHL2($A$2:A2);INDEX($A:$V;ANZAHL2($A:$A)+2-SPALTE(A1);ZEILE(A1));"")
Nach rechts und nach unten kopieren.
A:V ist jetzt eine maximal 22*22-Matrix - kann man natürlich beliebig anpassen.

Erläuterung
Um diese Formel (die trigonometrische) auf eine beliebige n x n Matrix anzupassen, müssen natürlich die Bezüge A3:H10; Spalte(A:H); und ZEILE(1:8) angepasst werden.
Das ist aber noch nicht alles:
Du findest in der Formel für die 6x6 die
ominöse Zahl 3,5. Die ist wichtig, weil sie genau in die Mitte der Matrix
weist und den Index 1, 2 ,3 ,4, 5 auf -2, -1, 0, +1, +2 umrechnet, bevor
mit den Formeln
x' = x * cos alfa - y * sin alfa
y' = x * sin alfa + y * cos alfa
(findest Du im Mathe-Buch)
das Koordinatensystem um den Winkel alfa gedreht und die neuen Koordinaten
x', y' aus den alten ermittelt werden. Das muss sein, weil die Matrix um
ihren 'Mittelpunkt' gedreht wird und nicht um eine ihrer Ecken. Nach der
Drehung muss wieder mit der Zahl 3 auf die Indizes 1 bis 5 zurückgerechnet
werden.

Die Zahl z=3 hat sich aus der Zeilen/Spalten-Zahl n=5 mit einer
Nebenrechnung z = (n+1)/2 = (5+1)/2 = 6/2 = 3 errechnet.

Für eine 8x8-Matrix wird z = 4,5 und für 9x9 ergibt sich z = 5.