swh:1:snp:81eadaa089e8253d8469bcef66aa332632c6c669
Tip revision: 113add4c7a9bfd37466a9b41cf2dc060b7b87091 authored by HwB on 06 December 2012, 00:00:00 UTC
version 1.3.1
version 1.3.1
Tip revision: 113add4
size.R
##
## s i z e . R Matlab size, numel, ndims, and isempty functions
##
size <- function(x, k) {
if (length(x) == 0) sz <- 0
else if (is.vector(x)) sz <- c(1, length(x))
else if (is.array(x)) sz <- dim(x)
else sz <- NULL
if (!missing(k)) {
if (k > length(sz)) sz <- 1
else if (k >= 1) sz <- sz[k]
else
stop("Requested dimension 'k' is out of range.")
}
return(sz)
}
numel <- function(x) {
sz <- size(x)
if (!is.null(sz)) prod(sz)
else return(NULL)
}
nnz <- function(x) {
if (length(x) == 0) return(0)
stopifnot(is.numeric(x) || is.complex(x))
sum(x != 0)
}
ndims <- function(x) {
sz <- size(x)
if (!is.null(sz)) length(sz)
else return(NULL)
}
isempty <- function(x) {
length(x) == 0
}