LitDev 1.2.24.0 DE
http://litdev.uk/LitDev.De.html Extension API

LD3DView LDArray LDBits LDBlueTooth LDCall
LDChart LDClient LDClipboard LDColours LDCommPort
LDController LDControls LDCursors LDDataBase LDDateTime
LDDebug LDDialogs LDDictionary LDEffect LDEmail
LDEncryption LDEvents LDFastArray LDFastShapes LDFigures
LDFile LDFocus LDftp LDGeography LDGraph
LDGraphicsWindow LDHashTable LDHID LDIcon LDImage
LDInline LDIOWarrior LDList LDLogic LDMath
LDMathX LDMatrix LDMusic LDNetwork LDPhysics
LDProcess LDQueue LDRegex LDResources LDScrollBars
LDSearch LDServer LDSettings LDShapes LDShell
LDSort LDSound LDSpeech LDStatistics LDStopwatch
LDText LDTextWindow LDTimer LDTranslate LDUnits
LDUtilities LDVector LDWaveForm LDWebCam LDWindows
LDxml LDZip

LDMatrix
2D Matrix-Struktur zB. zum Lösen linearer Gleichungssysteme (Intern: Matrix#).
Die Zeilen und Spalten sind ab 1 indexiert. Bei einem Fehler wird "FAILED" zurückgegeben.
Format für LDMatrix ist unterschiedlich und inkompatibel zum LDImage.ColorMatrix Format (2D Array).

example other-samples\LDMatrix.sb
http://de.wikipedia.org/wiki/Matrix_(Mathematik)
http://chortle.ccsu.edu/VectorLessons/vectorIndex.html


Add Copy CopyNew
CopyToSBArray Create Delete
GetValue Inverse Multiply
SetValue Transpose View

Add(matrix1,matrix2,result)
Addiert zwei Matrizen. Die Anzahl der Zeilen und Spalten müssen für beide Matrizen gleich sein. Dieses gilt auch für die Summenmatrix.
Alternativ: Ist die zweite Matrix ein Skalar (skalare Zahl), wird dieser zu JEDEM Element der ersten Matrix hinzuaddiert.

matrix1 Der Name der ersten Matrix.
matrix2 Der Name der zweiten Matrix oder Skalar.
result Der Name der bestehenden Summenmatrix.
returns "" bei Erfolg, sonst "FAILED".
example http://de.wikipedia.org/wiki/Matrizenaddition

Copy(matrix1,matrix2)
Kopiert die Werte einer Matrix in eine bestehende Zielmatrix.
Die Dimensionen beider Matrizen müssen identisch sein.

matrix1 Der Name der zu kopierenden Quellmatrix.
matrix2 Der Name der bestehenden Zielmatrix.
returns "" bei Erfolg, sonst "FAILED".

CopyNew(matrix)
Erstellt eine Kopie einer bestehenden Matrix (Intern: Matrix#+1).
matrix Der Name der zu kopierenden Quellmatrix.
returns Der Name der neuen Matrixkopie bei Erfolg, sonst "FAILED".

CopyToSBArray(matrix)
Kopiert eine bestehende LDMatrix in einen neuen 2D SB-Array der Form arr[row][col].
Die Umkehrung (SB-Array zu LDMatrix) ist nicht möglich, da SB-Arrays nicht zwangsläufig mit fortlaufenden Ganzzahlen indexiert werden.

matrix Der Name der Matrix.
returns Der Name des 2D SB-Array bei Erfolg, sonst "FAILED".

Create(rows,cols)
Erstellt eine neue m*n Matrix, gefüllt mit 0-Werten (Intern: Matrix#+1).
Zeilen- und Spaltenanzahl werden mit rows (m) und cols (n) entsprechend dimensioniert.

rows Die Anzahl der Zeilen (m >= 1).
cols Die Anzahl der Spalten (n >= 1).
returns Der Name der neuen Matrix bei Erfolg, sonst "FAILED".

Delete(matrix)
Löscht eine existierende Matrix (nicht generell erforderlich, kann aber bei Verwendung vieler Matrizen Speicherplatz freigeben).
matrix Der Name der zu löschenden Matrix.
returns "" bei Erfolg, sonst "FAILED".

GetValue(matrix,row,col)
Ermittelt den Wert eines Elementes in einer bestehenden Matrix.
matrix Der Name der Matrix.
row Die Zeile (ab 1) für den zu ermittelnden Wert.
col Die Spalte (ab 1) für den zu ermittelnden Wert.
returns Der ermittelte Wert bei Erfolg, sonst "FAILED".

Inverse(matrix,inverse)
Ermittelt die 'Inverse Matrix' M^-1 zu einer Matrix M (sodaß M * M^-1 = E, Gauß Elimination).
Die Anzahl der Zeilen und Spalten beider Matrizen müssen identisch und jeweils quadratisch sein.
Eine singuläre Matrix (det = 0) gibt den Wert "SINGULAR" zurück und die inverse Matrix wird fehlerhaft sein.

matrix Der Name der Matrix deren Inverse zu berechnen ist (bleibt unverändert, det <> 0).
inverse Der Name der bestehenden inversen Matrix.
returns "" bei Erfolg, sonst "FAILED" oder "SINGULAR".
example LDMatrix.Inverse(M, I) 'I = Einheitsmatrix E, für M=E
http://de.wikipedia.org/wiki/Inverse_Matrix


Multiply(matrix1,matrix2,result)
Multipliziert zwei Matrizen. Die Spaltenanzahl der ersten und Zeilenanzahl der zweiten Matrix müssen gleich sein.
Die Produktmatrix muß die Zeilenanzahl der ersten und Spaltenanzahl der zweiten Matrix besitzen.
Alternativ: Ist die zweite Matrix ein Skalar (skalare Zahl), wird dieser mit JEDEM Element der ersten Matrix multipliziert. Dabei muß die Produktmatrix die Dimensionen der ersten Matrix besitzen.

matrix1 Der Name der ersten Matrix (oder Zeilenvektor).
matrix2 Der Name der zweiten Matrix (oder Spaltenvektor) oder Skalar.
result Der Name der bestehenden Produktmatrix.
returns "" bei Erfolg, sonst "FAILED".
example http://de.wikipedia.org/wiki/Matrizenmultiplikation

SetValue(matrix,row,col,value)
Setzt den Wert für ein Element in einer bestehenden Matrix.
matrix Der Name der Matrix.
row Die Zeile (ab 1) für den zu setzenden Wert.
col Die Spalte (ab 1) für den zu setzenden Wert.
value Der zu setzende Zahlenwert.
returns "" bei Erfolg, sonst "FAILED".
example '5x5 Einheitsmatrix
mat = LDMatrix.Create(5,5)
For n = 1 To 5
LDMatrix.SetValue(mat, n,n, 1)
EndFor


Transpose(matrix,transpose)
Ermittelt die 'Transponierte Matrix' (an Hauptdiagonale gespiegelt).
Die Anzahl der Zeilen und Spalten beider Matrizen müssen kreuzweise gleich sein, dh. die erste Matrix muß soviele Spalten haben wie die zweite Matrix Zeilen, und umgekehrt.
zB. Zeilenvektor <- Transpose -> Spaltenvektor
bzw. Zeile[m] -> Spalte[m] und Spalte[n] -> Zeile[n]

matrix Der Name der zu transponierenden Matrix.
transpose Der Name der bestehenden transponierten Matrix.
returns "" bei Erfolg, sonst "FAILED".
example http://de.wikipedia.org/wiki/Transponierte_Matrix

View(matrix,modal)
Anzeige einer bestehenden LDMatrix in einem eigenen Viewer-Fenster (zB. Debugging, wählbare Ziffernanzeige, Fenster zuoberst).
Fenstertitel: 'Matrix# - Dimension rows x cols' (m Zeilen x n Spalten)

matrix Der Name der anzuzeigenden Matrix.
modal Programmablauf anhalten, bis der Viewer geschlossen wird? "True" oder "False".