7.5 Entrywise Operations and Arithmetic
procedure
M : (Matrix Number) N : (Matrix Number)
procedure
M : (Matrix Number) N : (Matrix Number)
procedure
M : (Matrix Number) N : (Matrix Number)
For matrix addition and subtraction all matrices must have the same shape.
For matrix product the number of columns of one matrix must equal the number of rows in the following matrix.
> (define A (matrix ([1 2] [3 4])))
> (define B (matrix ([5 6] [7 8])))
> (define C (matrix ([ 9 10 11] [12 13 14]))) > (matrix+ A B) (array #[#[6 8] #[10 12]])
> (matrix- A B) (array #[#[-4 -4] #[-4 -4]])
> (matrix* A C) (array #[#[33 36 39] #[75 82 89]])
> (matrix* (matrix-expt (matrix [[1 1] [1 0]]) 100) (col-matrix [0 1])) (array #[#[354224848179261915075] #[218922995834555169026]])
> (->col-matrix (list (fibonacci 100) (fibonacci 99))) (array #[#[354224848179261915075] #[218922995834555169026]])
> (matrix-scale (matrix [[1 2] [3 4]]) 2) (array #[#[2 4] #[6 8]])
> (matrix-kronecker (matrix [[1 2] [3 4] [5 6]]) (matrix [[7 8] [9 10]]))
(mutable-array
#[#[7 8 14 16]
#[9 10 18 20]
#[21 24 28 32]
#[27 30 36 40]
#[35 40 42 48]
#[45 50 54 60]])
Added in version 1.2 of package math-lib.
procedure
(matrix-map f M) → (Matrix R)
f : (A -> R) M : (Matrix A) (matrix-map f M0 M1 N ...) → (Matrix R) f : (A B Ts ... -> R) M0 : (Matrix A) M1 : (Matrix B) N : (Matrix Ts)
> (matrix-map sqr (matrix [[1 2] [3 4]])) (array #[#[1 4] #[9 16]])
> (matrix-map + (matrix [[1 2] [3 4]]) (matrix [[5 6] [7 8]])) (array #[#[6 8] #[10 12]])
See matrix-relative-error and matrix-absolute-error for equality testing that is tolerant to floating-point error.