kigubkur.construct.pick

Construct a kigubkur© matrix or a number by selecting from a kigubkur© matrix.

  • pick
  • pick-block
  • pick-diag
  • pick-nondiag

Examples

(require '[kigubkur.construct [pick :refer [pick]]])

for pick

=> (def M [[1 2 3][4 5 6]])
=> (view M)
[1 2 3]
[4 5 6]
Order -> 2 x 3

Then,

To pick an element

For element in index i = 1, j = 1

=> (pick M 1 1)
1

To pick a column

For column from rows 1 & 2 and from column 1

=> (view (pick M [1 2] 1))
[1]
[4]
Order -> 2 x 1

To pick a row

For row from row 2 and from columns 2 & 3

=> (view (pick M 2 [2 3]))
[5 6]
Order -> 1 x 2

for pick-block

=> (def B (block [[1 2 3 4 5 6 7 8 9 10]
                  [11 12 13 14 15 16 17 18 19 20]
                  [21 22 23 24 35 26 27 28 29 30]] 3))

Then,

=> (view (pick-block :A13 (block B)))
[7 8 9]
[17 18 19]
[27 28 29]
Order -> 3 x 3

for pick-diag

=> (def M [[1 1 2 9][2 4 -3 1][3 6 -5 0]])
=> (view M)
[1 1 2 9]
[2 4 -3 1]
[3 6 -5 0]
Order -> 3 x 4

=> (pick-diag M)
[[1 4 -5]]

=> (pick-diag M 0)
[[1 4 -5]]

=> (pick-diag M 1)
[[1 -3 0]]

=> (pick-diag M 2)
[[2 1]]

=> (pick-diag M 3)
[[9]]

=> (pick-diag M -1)
[[2 6]]

=> (pick-diag M -2)
[[3]]

for pick-nondiag

=> (view M)
[1 1 2 9]
[2 4 -3 1]
[3 6 -5 0]
Order -> 3 x 4

=> (pick-nondiag M)
[[1 2 9 2 -3 1 3 6 0]]

=> (pick-nondiag M 1)
[[1 2 9 2 4 1 3 6 -5]]

=> (pick-nondiag M 2)
[[1 1 9 2 4 -3 3 6 -5 0]]

=> (pick-nondiag M 3)
[[1 1 2 2 4 -3 1 3 6 -5 0]]

=> (pick-nondiag M -1)
[[1 1 2 9 4 -3 1 3 -5 0]]

=> (pick-nondiag M -2)
[[1 1 2 9 2 4 -3 1 6 -5 0]]

pick

(pick M i_ivec j_jvec)

Given a matrix Mm×n, pick an element, a row, a column or submatrix. Syntax for picking

ijth element: (pick M i j) s.t i, j ∈ ℤ+ and ij

ith row: (pick M i (colon [1 n])) s.t 1 ≤ im

jth column: (pick M (colon [1 m]) j) s.t 1 ≤ jn

i–to–kth and j–to–lth submatrix: (pick M (colon [i k]) (colon [j l])) s.t 1 ≤ ikm, 1 &le and jln

pick-block

(pick-block ky B)

Given a matrix BM×N, pick the embedded number or matrix (also row or column) for a given keyword.

Syntax: (pick-block :Aij B) s.t i, j ∈ ℤ+ and 1 ≤ iM, 1 ≤ jN

pick-diag

(pick-diag M & d)

Given a matrix Mm×n, returns the main diagonal or for d-th diagonal. Returned result is a row matrix. Note the optional d ∈ ℤ such that,

d diagonal of M
0 (default) main diagonal
0 < d < n diagonal along triangular part above main diagonal
-m < d < 0 diagonal along triangular part below main diagonal

pick-nondiag

(pick-nondiag M & d)

Given a matrix Mm×n, returns the non diagonal elements. Returned result is a row matrix. Note the optional d ∈ ℤ such that,

d diagonal of M
0 (default) main diagonal
0 < d < n diagonal along triangular part above main diagonal
-m < d < 0 diagonal along triangular part below main diagonal