Skip to contents

Print Matrices or Matrix Operations Side by Side

Source: R/printMatEqn.R
printMatEqn.Rd

This function is designed to print a collection of matrices, vectors, character strings and matrix expressions side by side. A typical use is to illustrate matrix equations in a compact and comprehensible way.

Usage

printMatEqn(..., space = 1, tol = sqrt (.Machine$double.eps), fractions = FALSE)

Arguments

...

matrices and character operations to be passed and printed to the console. These can include named arguments, character string operation symbols (e.g., "+")

space

amount of blank spaces to place around operations such as "+", "-", "=", etc

tol

tolerance for rounding

fractions

logical; if TRUE, try to express non-integers as rational numbers, using the fractions function; if you require greater accuracy, you can set the cycles (default 10) and/or max.denominator (default 2000) arguments to fractions as a global option, e.g., options(fractions=list(cycles=100, max.denominator=10^4)).

Value

NULL; A formatted sequence of matrices and matrix operations is printed to the console

See also

Author

Phil Chalmers

Examples


A <- matrix (c (2, 1, -1,
 -3, -1, 2,
 -2, 1, 2), 3, 3, byrow=TRUE)
x <- c (2, 3, -1)

# provide implicit or explicit labels
printMatEqn(AA = A, "*", xx = x, '=', b = A %*%  x)
#> AA xx b
#> 2 1 -1 * 2 = 8
#> -3 -1 2 3 -11
#> -2 1 2 -1 -3
printMatEqn(A, "*", x, '=', b = A %*%  x)
#> A x b
#> 2 1 -1 * 2 = 8
#> -3 -1 2 3 -11
#> -2 1 2 -1 -3
printMatEqn(A, "*", x, '=', A %*%  x)
#> A x A %*% x
#> 2 1 -1 * 2 = 8
#> -3 -1 2 3 -11
#> -2 1 2 -1 -3

# compare with showEqn
b <- c (4, 2, 1)
printMatEqn(A, x=paste0 ("x", 1:3),"=", b)
#> A x b
#> 2 1 -1 x1 = 4
#> -3 -1 2 x2 2
#> -2 1 2 x3 1
showEqn (A, b)
#> 2*x1 + 1*x2 - 1*x3 = 4 
#> -3*x1 - 1*x2 + 2*x3 = 2 
#> -2*x1 + 1*x2 + 2*x3 = 1 

# decimal example
A <- matrix (c (0.5, 1, 3, 0.75, 2.8, 4), nrow = 2)
x <- c (0.5, 3.7, 2.3)
y <- c (0.7, -1.2)
b <- A %*%  x - y

printMatEqn(A, "*", x, "-", y, "=", b)
#> A x y b
#> 0.50 3.00 2.80 * 0.5 - 0.7 = 17.090
#> 1.00 0.75 4.00 3.7 -1.2 13.675
#> 2.3 
printMatEqn(A, "*", x, "-", y, "=", b, fractions=TRUE)
#> A x y b
#> 1/2 3 14/5 * 1/2 - 7/10 = 1709/100
#> 1 3/4 4 37/10 -6/5 547/40
#> 23/10 

AltStyle によって変換されたページ (->オリジナル) /