Accessing and setting parts of a matrix

Contents

Accessing and setting parts of a matrix#

Getting and setting a matrix coefficient#

Individual coefficients of a matrix \(A\) are accessed using the A[row,col] syntax. Note that indexing starts at 0, so that the coefficient in the \(4^{\text{th}}\) row and \(2^{\text{nd}}\) column is accessed as A[3,1]. Examples:

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the coefficient in row number 3 and column number 1
>>> print("A[3,1]: ", A[3,1])
A[3,1]:  42

>>> # sets the coefficient in row number 1 and column number 2 to the value of 99.
>>> A[1,2] = 99; A.show("A")
matA:
11,  12,  13,  14,
21,  22,  99,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

Getting and setting a matrix row#

mat.GetRow(i)#

Gets the \(i^{\text{th}}\) row.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets row number 2 (i.e. the 3rd row from the top)
>>> r1 = A.row(2); r1.show("r1")
r1:
31,  32,  33,  34,
mat.SetRow(i, matB)#

Sets the \(i^{\text{th}}\) row to matB.

>>> # continued from above
>>> # sets the content of row number 5 to the content of row number 2
>>> A.set_row(5, A.row(2)); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
31,  32,  33,  34,

Getting and setting a matrix column#

mat.GetCol(j)#

Gets the \(j^{\text{th}}\) column.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets column number 1 (i.e. the 2nd column from the left)
>>> c1 = A.col(1); c1.show("c1")
c1:
12,
22,
32,
42,
52,
62,
mat.SetCol(j, matB)#

Sets the \(j^{\text{th}}\) column to matB.

>>> # continued from above
>>> # sets the content of column number 3 to the content of column number 1
>>> A.set_col(3, A.col(1)); A.show("A")
A:
11,  12,  13,  12,
21,  22,  23,  22,
31,  32,  33,  32,
41,  42,  43,  42,
51,  52,  53,  52,
61,  62,  63,  62,

Getting and setting a block#

mat.GetBlock(i, j, p, q)#

Gets a block of the matrix, starting at row \(i\) and column \(j\), with \(p\) row elements and \(q\) column elements.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets a block, beginning at A[1, 1], stretching to A[1+3, 1+2]
>>> b1 = A.block(1, 1, 3, 2); b1.show("b1")
b1:
22,  23,
32,  33,
42,  43,
mat.SetBlock(i, j, p, q, matB)#

Sets a block of the matrix to matB, starting at row \(i\) and column \(j\), with \(p\) row elements and \(q\) column elements.

>>> # continued from above
>>> # sets b1 into a block, beginning at A[0, 0], stretching to A[0+3, 0+2]
>>> A.set_block(0, 0, 3, 2, b1); ; A.show("A")
A:
22,  23,  13,  14,
32,  33,  23,  24,
42,  43,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

Getting and setting a block in the top left corner#

mat.GetTopLeftCorner(p, q)#

Gets the \(p\) by \(q\) top left corner of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the `3` by `2` block top left corner
>>> b1 = A.top_left_corner(3, 2); b1.show("b1")
b1:
11,  12,
21,  22,
31,  32,
mat.SetTopLeftCorner(p, q, matB)#

Sets the \(p\) by \(q\) top left corner of the matrix to matB.

>>> # continued from above
>>> # sets the `3` by `2` top left corner to the `3` by `2` bottom left corner
>>> A.set_top_left_corner(3, 2, A.bottom_left_corner(3, 2)); A.show("A")
A:
41,  42,  13,  14,
51,  52,  23,  24,
61,  62,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

Getting and setting a block in the bottom left corner#

mat.GetBottomLeftCorner(p, q)#

Gets the \(p\) by \(q\) bottom left corner of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the `3` by `2` bottom left corner
>>> b1 = A.bottom_left_corner(3, 2); b1.show("b1")"
b1:
41,  42,
51,  52,
61,  62,
mat.SetBottomLeftCorner(p, q, matB)#

Sets the \(p\) by \(q\) bottom left corner of the matrix to matB.

>>> # continued from above
>>> # sets the `3` by `2` bottom left corner to the `3` by `2` top left corner
>>> A.set_bottom_left_corner(3, 2, A.top_left_corner(3, 2)); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
11,  12,  43,  44,
21,  22,  53,  54,
31,  32,  63,  64,

Getting and setting a block in the top right corner#

mat.GetTopRightCorner(p, q)#

Gets the \(p\) by \(q\) top right corner of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the `3` by `2` top right corner
>>> b1 = A.top_right_corner(3, 2); b1.show("b1")
b1:
13,  14,
23,  24,
33,  34,
mat.SetTopRightCorner(p, q, matB)#

Sets the \(p\) by \(q\) top right corner of the matrix to matB.

>>> # continued from above
>>> # sets the `3` by `2` top right corner to the `3` by `2` bottom right corner
>>> A.set_top_right_corner(3, 2, A.bottom_right_corner(3, 2)); A.show("A")
A:
11,  12,  43,  44,
21,  22,  53,  54,
31,  32,  63,  64,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

Getting and setting a block in the bottom right corner#

mat.GetBottomRightCorner(p, q)#

Gets the \(p\) by \(q\) bottom right corner of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the `3` by `2` top right corner
>>> b1 = A.bottom_right_corner(3, 2); b1.show("b1")
b1:
43,  44,
53,  54,
63,  64,
mat.SetBottomRightCorner(p, q, matB)#

Sets the \(p\) by \(q\) bottom right corner of the matrix to matB.

>>> # continued from above
>>> # sets the `3` by `2` top right corner to the `3` by `2` bottom right corner
>>> A.set_bottom_right_corner(3, 2, A.top_right_corner(3, 2)); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  13,  14,
51,  52,  23,  24,
61,  62,  33,  34,

Getting and setting a block containing the first q rows#

mat.GetTopRows(q)#

Gets the top \(q\) rows of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the 2 top rows
>>> b1 = A.top_rows(2); b1.show("b1")
b1:
11,  12,  13,  14,
21,  22,  23,  24,
mat.SetTopRows(q, matB)#

Sets the top \(q\) rows of the matrix to matB.

>>> # continued from above
>>> # sets the 2 top rows to the 2 bottom rows
>>> A.set_top_rows(2, A.bottom_rows(2)); A.show("A")
A:
51,  52,  53,  54,
61,  62,  63,  64,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

Getting and setting a block containing the last q rows#

mat.GetBottomRows(q)#

Gets the bottom \(q\) rows of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the 2 bottom rows
>>> b1 = A.bottom_rows(2); b1.show("b1")
b1:
51,  52,  53,  54,
61,  62,  63,  64,
mat.SetBottomRows(q, matB)#

Sets the bottom \(q\) rows of the matrix to matB.

>>> # continued from above
>>> # sets the 2 bottom rows to the 2 top rows
>>> A.set_bottom_rows(2, A.top_rows(2)); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
11,  12,  13,  14,
21,  22,  23,  24,

Getting and setting a block containing the first p columns#

mat.GetLeftCols(p)#

Gets the first \(p\) (leftmost) columns of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the first 2 (leftmost) columns
>>> b1 = A.left_cols(2); b1.show("b1")
b1:
11,  12,
21,  22,
31,  32,
41,  42,
51,  52,
61,  62,
mat.SetLeftCols(p, matB)#

Sets the first \(p\) (leftmost) columns of the matrix to matB.

>>> # continued from above
>>> # sets the first 2 (leftmost) columns to the last 2 (rightmost) columns
>>> A.set_left_cols(2, A.right_cols(2)); A.show("A")
A:
13,  14,  13,  14,
23,  24,  23,  24,
33,  34,  33,  34,
43,  44,  43,  44,
53,  54,  53,  54,
63,  64,  63,  64,

Getting and setting a block containing the last q columns#

mat.GetRightCols(p)#

Gets the last \(p\) (rightmost) columns of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the last 2 (rightmost) columns
>>> b1 = A.right_cols(2); b1.show("b1")
b1:
13,  14,
23,  24,
33,  34,
43,  44,
53,  54,
63,  64,
mat.SetRightCols(p, matB)#

Sets the first \(p\) (rightmost) columns of the matrix to matB.

>>> # continued from above
>>> # sets the last 2 (rightmost) columns to the first 2 (leftmost) columns
>>> A.set_right_cols(2, A.left_cols(2)); A.show("A")
A:
11,  12,  11,  12,
21,  22,  21,  22,
31,  32,  31,  32,
41,  42,  41,  42,
51,  52,  51,  52,
61,  62,  61,  62,

Getting and setting a diagonal#

mat.GetDiagonal(q=0)#

Gets the diagonal or a subdiagonal of the matrix.

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets the first lower subdiagonal
>>> b1 = A.diagonal(-1); b1.show("b1")
b1 = A.diagonal(-1):
21,
32,
43,
54,
mat.SetDiagonal(q, matB)#

Sets the diagonal or a subdiagonal of the matrix to matB.

>>> # continued from above
>>> # sets the diagonal to the first lower subdiagonal
>>> A.set_diagonal(0, b1); A.show("A")
A:
21,  12,  13,  14,
21,  32,  23,  24,
31,  32,  43,  34,
41,  42,  43,  54,
51,  52,  53,  54,
61,  62,  63,  64,

Getting and setting middle rows#

mat.GetMiddleRows(p, q)#

Gets a block containing \(q\) rows of the matrix, starting at row \(p\).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets a block containing 2 rows, starting at row 1
>>> b1 = A.middle_rows(1, 2); b1.show("b1")
b1:
21,  22,  23,  24,
31,  32,  33,  34,
mat.SetMiddleRows(p, q, matB)#

Sets a block containing \(q\) rows of the matrix to matB, starting at row \(p\).

>>> # continued from above
>>> # sets a block containing 2 rows, starting at row 3, to b1
>>> A.set_middle_rows(3, 2, b1); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
21,  22,  23,  24,
31,  32,  33,  34,
61,  62,  63,  64,

Getting and setting middle columns#

mat.GetMiddleCols(p, q)#

Gets a block containing \(q\) columns of the matrix, starting at column \(p\).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x4", ""); A.show("A")
A:
11,  12,  13,  14,
21,  22,  23,  24,
31,  32,  33,  34,
41,  42,  43,  44,
51,  52,  53,  54,
61,  62,  63,  64,

>>> # gets a block containing 2 columns, starting at column 0
>>> b1 = A.middle_cols(0, 2); b1.show("b1")
b1:
11,  12,
21,  22,
31,  32,
41,  42,
51,  52,
61,  62,
mat.SetMiddleCols(p, q, matB)#

Sets a block containing \(q\) columns of the matrix to matB, starting at column \(p\).

>>> # continued from above
>>> # sets a block containing 2 columns, starting at column 1, to b1
>>> A.set_middle_cols(1, 2, b1); A.show("A")
A:
11,  11,  12,  14,
21,  21,  22,  24,
31,  31,  32,  34,
41,  41,  42,  44,
51,  51,  52,  54,
61,  61,  62,  64,

Getting and setting the lower triangle#

mat.GetLowerTriangle()#

Gets the lower triangle (including the diagonal).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x6", ""); A.show("A")
A:
11, 12, 13, 14, 15, 16,
21, 22, 23, 24, 25, 26,
31, 32, 33, 34, 35, 36,
41, 42, 43, 44, 45, 46,
51, 52, 53, 54, 55, 56,
61, 62, 63, 64, 65, 66,

>>> # gets the lower triangle (including the diagonal)
>>> b1 = A.lower_triangle(); b1.show("b1")
b1:
11,  0,  0,  0,  0,  0,
21, 22,  0,  0,  0,  0,
31, 32, 33,  0,  0,  0,
41, 42, 43, 44,  0,  0,
51, 52, 53, 54, 55,  0,
61, 62, 63, 64, 65, 66,
mat.SetLowerTriangle(matB)#

Sets the lower triangle (including the diagonal) to matB.

>>> # continued from above
>>> # read and display another matrix, B
>>> B = ctx.read_from_sqlite(mp14.dbpath(), "DecTableB6x6", ""); B.show("B")
B:
911, 912, 913, 914, 915, 916,
921, 922, 923, 924, 925, 926,
931, 932, 933, 934, 935, 936,
941, 942, 943, 944, 945, 946,
951, 952, 953, 954, 955, 956,
961, 962, 963, 964, 965, 966,

>>> # sets the lower triangle (including the diagonal) of A to B
>>> A.set_lower_triangle(B); A.show("A")
A:
911,  12,  13,  14,  15,  16,
921, 922,  23,  24,  25,  26,
931, 932, 933,  34,  35,  36,
941, 942, 943, 944,  45,  46,
951, 952, 953, 954, 955,  56,
961, 962, 963, 964, 965, 966,

Getting and setting the upper triangle#

mat.GetUpperTriangle()#

Gets the lower triangle (including the diagonal).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x6", ""); A.show("A")
A:
11, 12, 13, 14, 15, 16,
21, 22, 23, 24, 25, 26,
31, 32, 33, 34, 35, 36,
41, 42, 43, 44, 45, 46,
51, 52, 53, 54, 55, 56,
61, 62, 63, 64, 65, 66,

>>> # gets the upper triangle (including the diagonal)
>>> b1 = A.upper_triangle(); b1.show("b1")
b1:
11, 12, 13, 14, 15, 16,
 0, 22, 23, 24, 25, 26,
 0,  0, 33, 34, 35, 36,
 0,  0,  0, 44, 45, 46,
 0,  0,  0,  0, 55, 56,
 0,  0,  0,  0,  0, 66,
mat.SetUpperTriangle(matB)#

Sets the lower triangle (including the diagonal) to matB.

>>> # continued from above
>>> # read and display another matrix, B
>>> B = ctx.read_from_sqlite(mp14.dbpath(), "DecTableB6x6", ""); B.show("B")
B:
911, 912, 913, 914, 915, 916,
921, 922, 923, 924, 925, 926,
931, 932, 933, 934, 935, 936,
941, 942, 943, 944, 945, 946,
951, 952, 953, 954, 955, 956,
961, 962, 963, 964, 965, 966,

>>> # sets the upper triangle (including the diagonal) of A to B
>>> A.set_upper_triangle(B); A.show("A")
A:
911, 912, 913, 914, 915, 916,
 21, 922, 923, 924, 925, 926,
 31,  32, 933, 934, 935, 936,
 41,  42,  43, 944, 945, 946,
 51,  52,  53,  54, 955, 956,
 61,  62,  63,  64,  65, 966,

Getting and setting the strictly lower triangle#

mat.GetStrictlyLowerTriangle()#

Gets the strictly lower triangle (without the diagonal).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x6", ""); A.show("A")
A:
11, 12, 13, 14, 15, 16,
21, 22, 23, 24, 25, 26,
31, 32, 33, 34, 35, 36,
41, 42, 43, 44, 45, 46,
51, 52, 53, 54, 55, 56,
61, 62, 63, 64, 65, 66,

>>> # gets the strictly lower triangle (without the diagonal)
>>> b1 = A.strictly_lower_triangle(); b1.show("b1")
b1:
 0,  0,  0,  0,  0,  0,
21,  0,  0,  0,  0,  0,
31, 32,  0,  0,  0,  0,
41, 42, 43,  0,  0,  0,
51, 52, 53, 54,  0,  0,
61, 62, 63, 64, 65,  0,
mat.SetStrictlyLowerTriangle(matB)#

Sets the strictly lower triangle (without the diagonal) to matB.

>>> # continued from above
>>> # read and display another matrix, B
>>> B = ctx.read_from_sqlite(mp14.dbpath(), "DecTableB6x6", ""); B.show("B")
B:
911, 912, 913, 914, 915, 916,
921, 922, 923, 924, 925, 926,
931, 932, 933, 934, 935, 936,
941, 942, 943, 944, 945, 946,
951, 952, 953, 954, 955, 956,
961, 962, 963, 964, 965, 966,

>>> # sets the strictly lower triangle (without the diagonal) of A to B
>>> A.set_strictly_lower_triangle(B); A.show("A")
A:
 11,  12,  13,  14,  15,  16,
921,  22,  23,  24,  25,  26,
931, 932,  33,  34,  35,  36,
941, 942, 943,  44,  45,  46,
951, 952, 953, 954,  55,  56,
961, 962, 963, 964, 965,  66,

Getting and setting the strictly upper triangle#

mat.GetStrictlyUpperTriangle()#

Gets the strictly upper triangle (without the diagonal).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x6", ""); A.show("A")
A:
11, 12, 13, 14, 15, 16,
21, 22, 23, 24, 25, 26,
31, 32, 33, 34, 35, 36,
41, 42, 43, 44, 45, 46,
51, 52, 53, 54, 55, 56,
61, 62, 63, 64, 65, 66,

>>> # gets the strictly upper triangle (without the diagonal)
>>> b1 = A.strictly_upper_triangle(); b1.show("b1")
b1:
 0, 12, 13, 14, 15, 16,
 0,  0, 23, 24, 25, 26,
 0,  0,  0, 34, 35, 36,
 0,  0,  0,  0, 45, 46,
 0,  0,  0,  0,  0, 56,
 0,  0,  0,  0,  0,  0,
mat.SetStrictlyUpperTriangle(matB)#

Sets the strictly upper triangle (without the diagonal) to matB: set_strictly_upper_triangle(matB).

>>> # continued from above
>>> # read and display another matrix, B
>>> B = ctx.read_from_sqlite(mp14.dbpath(), "DecTableB6x6", ""); B.show("B")
B:
911, 912, 913, 914, 915, 916,
921, 922, 923, 924, 925, 926,
931, 932, 933, 934, 935, 936,
941, 942, 943, 944, 945, 946,
951, 952, 953, 954, 955, 956,
961, 962, 963, 964, 965, 966,

>>> # sets the strictly upper triangle (without the diagonal) of A to B
>>> A.set_strictly_upper_triangle(B); A.show("A")
A:
 11, 912, 913, 914, 915, 916,
 21,  22, 923, 924, 925, 926,
 31,  32,  33, 934, 935, 936,
 41,  42,  43,  44, 945, 946,
 51,  52,  53,  54,  55, 956,
 61,  62,  63,  64,  65,  66,

Getting and setting the unit lower triangle#

mat.GetUnitLowerTriangle()#

Gets the unit lower triangle (returning 1s for the diagonal).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x6", ""); A.show("A")
A:
11, 12, 13, 14, 15, 16,
21, 22, 23, 24, 25, 26,
31, 32, 33, 34, 35, 36,
41, 42, 43, 44, 45, 46,
51, 52, 53, 54, 55, 56,
61, 62, 63, 64, 65, 66,

>>> # gets the unit lower triangle (without the diagonal)
>>> b1 = A.unit_lower_triangle(); b1.show("b1")
b1:
 1,  0,  0,  0,  0,  0,
21,  1,  0,  0,  0,  0,
31, 32,  1,  0,  0,  0,
41, 42, 43,  1,  0,  0,
51, 52, 53, 54,  1,  0,
61, 62, 63, 64, 65,  1,
mat.SetUnitLowerTriangle(matB)#

Sets the unit lower triangle (without changing the diagonal) to matB.

>>> # continued from above
>>> # read and display another matrix, B
>>> B = ctx.read_from_sqlite(mp14.dbpath(), "DecTableB6x6", ""); B.show("B")
B:
911, 912, 913, 914, 915, 916,
921, 922, 923, 924, 925, 926,
931, 932, 933, 934, 935, 936,
941, 942, 943, 944, 945, 946,
951, 952, 953, 954, 955, 956,
961, 962, 963, 964, 965, 966,

>>> # sets the unit lower triangle (without the diagonal) of A to B
>>> A.set_unit_lower_triangle(B); A.show("A")
A:
 11,  12,  13,  14,  15,  16,
921,  22,  23,  24,  25,  26,
931, 932,  33,  34,  35,  36,
941, 942, 943,  44,  45,  46,
951, 952, 953, 954,  55,  56,
961, 962, 963, 964, 965,  66,

Getting and setting the unit upper triangle#

mat.GetUnitUpperTriangle()#

Gets the unit upper triangle (returning 1s for the diagonal).

>>> from xlcalcnet import *
>>> ctx = mp14.drf()
>>> A = ctx.read_from_sqlite(mp14.dbpath(), "DecTableA6x6", ""); A.show("A")
A:
11, 12, 13, 14, 15, 16,
21, 22, 23, 24, 25, 26,
31, 32, 33, 34, 35, 36,
41, 42, 43, 44, 45, 46,
51, 52, 53, 54, 55, 56,
61, 62, 63, 64, 65, 66,

>>> # gets the unit upper triangle (without the diagonal)
>>> b1 = A.unit_upper_triangle(); b1.show("b1")
b1:
 1, 12, 13, 14, 15, 16,
 0,  1, 23, 24, 25, 26,
 0,  0,  1, 34, 35, 36,
 0,  0,  0,  1, 45, 46,
 0,  0,  0,  0,  1, 56,
 0,  0,  0,  0,  0,  1,
mat.SetUnitUpperTriangle(matB)#

Sets the unit upper triangle (without changing the diagonal) to matB.

>>> # read and display another matrix, B
>>> B = ctx.read_from_sqlite(mp14.dbpath(), "DecTableB6x6", ""); B.show("B")
B:
911, 912, 913, 914, 915, 916,
921, 922, 923, 924, 925, 926,
931, 932, 933, 934, 935, 936,
941, 942, 943, 944, 945, 946,
951, 952, 953, 954, 955, 956,
961, 962, 963, 964, 965, 966,

>>> # sets the unit upper triangle (without the diagonal) of A to B
>>> A.set_unit_upper_triangle(B); A.show("A")
A:
 11, 912, 913, 914, 915, 916,
 21,  22, 923, 924, 925, 926,
 31,  32,  33, 934, 935, 936,
 41,  42,  43,  44, 945, 946,
 51,  52,  53,  54,  55, 956,
 61,  62,  63,  64,  65,  66,