Seite 1 von 1

Matrix als Tabelle

BeitragVerfasst: Di 22. Feb 2011, 13:35
von Anderesio
Ich habe ein Problem.
Ich verwende die Matrix als eine Rechentabelle, wobei es sich um eine 7x7 Matrix handelt.
In der ersten 5x5 Dimension habe ich Zufallswerte generiert, mit folgenden Code (MatrixC [->] 7x7 ist bereits gegeben):

0 [->] A
1 [->] B
Do
A+1 [->] A
Int (Ran#*4) [->] Mat C[A,B]
If A=5 And B<5
Then 0 [->] A:B+1 [->] B
IfEnd
LpWhile A(un=)5 And B(un=)6

Dieser Part funktioniert noch reibungslos.
Es werden wie erwartet bis zu den Reihen 5 und Spalten 5, Zufallszahlen von 0 bis 3 ausgegeben.
Zur kontrolle hatte ich "Mat C [DISP] " verwendet.

Bei den nun folgenden Part soll jede Spalte für sich addiert und in der Matrix in der 6. Reihe ausgegeben werden.
Bsp.: Mat C[1,1]+Mat C[1,2]+Mat C[1,3]+Mat C[1,4]+Mat C[1,5] [->] Mat C[1,6]:Mat C[1,6] [DISP]

Da ich allerdings mir Speicher sparen möchte, und ich diesen Vorgang für jede Spalte hätte neu eingeben müssen, habe ich diesen Vorgang erneut in einer
Do-LpWhile-Schleife gepackt, welche direkt an der ersten Schleife anschließt:

0 [->] A
1 [->] B
Do
A+1 [->] A
Mat C[A,B]+Mat C[6,B] [->] Mat C[6,B]
If A=5 And B<5
Then 0 [->] A:B+1 [->] B
IfEnd
LpWhile A(un=)5 And B(un=)6

Nun stellt allerdings folgenden Problem:
Er hat für die erste Spalte: 0+1+2+0+2 = 41 berechnet.
Diese groben Rechenfehler zeigen sich auch in den anderen Spalten, obwohl ich innerhalb der Spalten eine einfache Addition versuchte.

Was habe ich in dieser Schleife falsch gemacht?

Ps.: Falls es jemanden interessieren sollte, ich habe den fx-975GA PLUS verwendet.

Re: Matrix als Tabelle

BeitragVerfasst: Di 22. Feb 2011, 13:41
von Anderesio
Ich korrigiere mich,
bei dem Bsp. sollte es folgend heißen:
Mat C[1,1]+Mat C[2,1]+Mat C[3,1]+Mat C[4,1]+Mat C[5,1] = Mat C[6,1]

Re: Matrix als Tabelle

BeitragVerfasst: Di 22. Feb 2011, 18:16
von cfxm
Könnte es vielleicht sein, dass in Mat C[6,B] noch ein alter Wert stand? Ich habe es nämlich mal getestet und es funktioniert.

PS: Schöner lässt sich das mit zwei verschachtelten For-Schleifen machen bzw. kann man auch die Anweisung "Mat->List()" mit dem Listenbefehl "Sum" kombinieren.

Re: Matrix als Tabelle

BeitragVerfasst: Mi 23. Feb 2011, 00:31
von Anderesio
Ahh...
Ich habe noch einmal nachgeschaut, und meine Matrix war wirklich noch nicht ganz leer :oops:
Nachdem ich sie mal geleert hatte funktionierte es wie erwünscht.
Das Programm hatte lediglich immer die alten Werte noch hinzuaddiert.