check_diagonal()
and check_is_diagonal()
verify whether a given
matrix is diagonal. check_diagonal()
raises an error if the matrix is
not diagonal, while check_is_diagonal()
returns TRUE
if the
matrix is diagonal and FALSE
otherwise.
Value
check_diagonal()
: Returns the input matrix or raises an error if the condition is not met.check_is_diagonal()
: Logical value,TRUE
if the matrix is diagonal, andFALSE
otherwise.
Examples
# Examples for check_diagonal()
# -----------------------------
A <- diag(1:3)
print(A)
#> [,1] [,2] [,3]
#> [1,] 1 0 0
#> [2,] 0 2 0
#> [3,] 0 0 3
check_diagonal(A)
#> [,1] [,2] [,3]
#> [1,] 1 0 0
#> [2,] 0 2 0
#> [3,] 0 0 3
B <- matrix(1:9, nrow = 3)
print(B)
#> [,1] [,2] [,3]
#> [1,] 1 4 7
#> [2,] 2 5 8
#> [3,] 3 6 9
try(check_diagonal(B))
#> Error in check_diagonal(B) : Expected 'mat' to be a diagonal matrix
C <- matrix(0, nrow = 3, ncol = 3)
print(C)
#> [,1] [,2] [,3]
#> [1,] 0 0 0
#> [2,] 0 0 0
#> [3,] 0 0 0
check_diagonal(C)
#> [,1] [,2] [,3]
#> [1,] 0 0 0
#> [2,] 0 0 0
#> [3,] 0 0 0
D <- matrix(1:6, nrow = 2)
print(D)
#> [,1] [,2] [,3]
#> [1,] 1 3 5
#> [2,] 2 4 6
try(check_diagonal(D))
#> Error in check_matrix(mat = mat, is_square = TRUE, par_name = "mat") :
#> Expected 'mat' to be a square matrix but got a 2 by 3 matrix
vec <- c(1, 2, 3)
print(vec)
#> [1] 1 2 3
try(check_diagonal(vec))
#> Error in check_matrix(mat = mat, is_square = TRUE, par_name = "mat") :
#> Expected 'mat' to be a matrix but got numeric
# Examples for check_is_diagonal()
# --------------------------------
check_is_diagonal(A)
#> [1] TRUE
check_is_diagonal(B)
#> [1] FALSE
check_is_diagonal(C)
#> [1] TRUE
check_is_diagonal(D)
#> [1] FALSE
check_is_diagonal(vec)
#> [1] FALSE