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,TRUEif the matrix is diagonal, andFALSEotherwise.
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