|
Class: Matrix
Object
|
+--Collection
|
+--SequenceableCollection
|
+--AbstractMultidimensionalArray
|
+--AbstractMatrix
|
+--Matrix
|
+--SquareMatrix
- Package:
- stx:libbasic2
- Category:
- Collections-MultiDimensional
- Version:
- rev:
1.14
date: 2023/06/04 13:03:21
- user: cg
- file: Matrix.st directory: libbasic2
- module: stx stc-classLibrary: libbasic2
Generic Matrix with arbitrary number of dimensions.
Especially useful with the ArrayIndexing-Parser extension.
[instance variables:]
[class variables:]
copyrightCOPYRIGHT (c) 2018 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
instance creation
-
_at: nIndices
-
Generate a 1 dimensional matrix (actually, a vector).
This is a synthetic selector, generated by the compiler,
if a construct of the form expr[idx...] is parsed.
I.e.
Matrix[n]
generates
Matrix _at: n
which instantiates a vector with n cols.
-
_at: dim1 at: dim2
-
Generate a 2 dimensional matrix.
This is a synthetic selector, generated by the compiler,
if a construct of the form expr[idx...] is parsed.
I.e.
Matrix[n][m]
generates
Matrix _at:n at:m
which instantiates a matrix with n rows and m cols.
-
_at: dim1 at: dim2 at: dim3
-
Generate a 3 dimensional matrix.
This is a synthetic selector, generated by the compiler,
if a construct of the form expr[idx...] is parsed.
I.e.
Matrix[n][m][o]
generates
Matrix _at:n at:m at:o
-
_at: dim1 at: dim2 at: dim3 at: dim4
-
Generate a 4 dimensional matrix.
This is a synthetic selector, generated by the compiler,
if a construct of the form expr[idx...] is parsed.
I.e.
Matrix[n][m][o][p]
generates
Matrix _at:n at:m at:o at:p
-
identity: sizeArg
-
Answer an identity matrix of order 'anInteger @ anInteger'.
Usage example(s):
self identity:2
self identity:3
self identity:5
|
-
js_new: dim1 new: dim2
( an extension from the stx:libjavascript package )
-
this is a synthetic selector, generated by the JS compiler,
if a construct of the form new Matrix(dim1, dim2) is parsed.
I.e.
new Matrix(n,m)
generates
Matrix js_new:n new:m
-
newForRows: nRows cols: nCols
-
Answer a new empty matrix of 'nRows @ nCols'.
-
ones: aPoint
-
Answer a matrix of order 'aPoint' filled with ones.
The point's y coordinate defines the number of rows
Usage example(s):
self ones:(3 @ 3)
self ones:(3 @ 2)
self ones:(5 @ 5)
|
-
rows: collectionOfRows
-
given the contents as a vector of rows.
Does not verify, but assumes that each row has the same number of columns.
Usage example(s):
|m|
m := Matrix rows:#( (1 2 3)
(4 5 6)
(7 8 9) ).
self assert:(m = (Matrix[3][3] contents:#(1 2 3 4 5 6 7 8 9)))
|
-
zero: aPoint
-
Answer a matrix of order 'aPoint' filled with zeros.
The point's y coordinate defines the number of rows
Usage example(s):
self zero:(3 @ 3)
self zero:(3 @ 2)
self zero:(5 @ 5)
|
accessing
-
size
-
the overall number of elements
comparing
-
= aMatrix
-
Answer true, if the argument represents the same matrix
-
hash
-
Matrix[5][5] = Matrix[5][5]
Matrix[5][5] hash = Matrix[5][5] hash
|m1 m2|
m1 := Matrix[5][5]. m1[1][2] := 99.
m2 := Matrix[5][5]. m2[1][2] := 88.
m1 = m2.
m1 hash = m2 hash.
|m1 m2|
m1 := Matrix[5][5]. m1[1][2] := 99.
m2 := Matrix[5][5]. m2[1][2] := 88.
m1 = m2.
m1 hash = m2 hash.
Usage example(s):
Matrix[5][5] = Matrix[5][5]
Matrix[5][5] hash = Matrix[5][5] hash
|m1 m2|
m1 := Matrix[5][5]. m1[1][2] := 99.
m2 := Matrix[5][5]. m2[1][2] := 88.
m1 = m2.
m1 hash = m2 hash.
|m1 m2|
m1 := Matrix[5][5]. m1[1][2] := 99.
m2 := Matrix[5][5]. m2[1][2] := 88.
m1 = m2.
m1 hash = m2 hash.
|
species instance creation
-
speciesNew: size
-
create a new instance of my species.
MUST be redefined especially for MatrixAccessor
You have to enable the Parser's arrayIndexingExtension support
in order to be able to execute the examples below.
Parser allowArrayIndexSyntaxExtension:true
|m3|
m3 := (Matrix[3][2][2]) contents:#(
1 2
3 4
10 20
30 40
100 200
300 400
).
Transcript showCR:(m3 displayString).
Transcript showCR: e'm3[1][1][1] : {m3[1][1][1]}'.
Transcript showCR: e'm3[2][1][1] : {m3[2][1][1]}'.
Transcript showCR: e'm3[3][1][1] : {m3[3][1][1]}'.
Transcript showCR: e'm3[1][2][1] : {m3[1][2][1]}'.
Transcript showCR: e'm3[2][2][1] : {m3[2][2][1]}'.
Transcript showCR: e'm3[3][2][1] : {m3[3][2][1]}'.
Transcript showCR: e'm3[1][1][2] : {m3[1][1][2]}'.
Transcript showCR: e'm3[2][1][2] : {m3[2][1][2]}'.
Transcript showCR: e'm3[3][1][2] : {m3[3][1][2]}'.
|
|m|
m := (Matrix[3][3]) contents:#(
1 2 3
4 5 6
7 8 9).
m
|
|m|
m := (Matrix3_3 new) contents:#(
1 2 3
4 5 6
7 8 9).
m
|
|m|
m := Matrix3_3 new.
m[2][1] := 11.
m[2][2] := 12.
m[2][3] := 13.
m
|
|m|
m := Matrix3_3 identity.
m
|
|m1 m2|
m1 := Matrix3_3 new.
m1 atAllPut:1.
m2 := Matrix3_3 new.
m2 atAllPut:2.
m1 - m2
|
|m1 m2|
m1 := Matrix3_3 new.
m1 atAllPut:1.
m2 := Matrix3_3 new.
m2 atAllPut:2.
m1 + m2
|
|