Added reshape function
This commit is contained in:
parent
c56698f06a
commit
240a3705e4
2 changed files with 51 additions and 0 deletions
24
R/reshape.R
Normal file
24
R/reshape.R
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#' @title Reshape array
|
||||||
|
#' @description Reshapes a matrix according to a certain number of dimensions
|
||||||
|
#' @param A input matrix
|
||||||
|
#' @param sz vector containing the dimensions of the output vector
|
||||||
|
#' @details This function replicates the functionality of the `reshape()`
|
||||||
|
#' function on Matlab. This function is basically a fancy wrapper for the
|
||||||
|
#' `array()` function in R, but is useful because it saves the user translation
|
||||||
|
#' time. Moreover, it introduces validation code that alter the behavior of
|
||||||
|
#' `array()` and makes it more similar to `replicate()`.
|
||||||
|
#' @note The Matlab function also accepts as input the dismemberment of sz as
|
||||||
|
#' scalars.
|
||||||
|
reshape <- function(A, sz) {
|
||||||
|
# Validation
|
||||||
|
if (prod(sz) != prod(dim(A))) {
|
||||||
|
stop("To RESHAPE the number of elements must not change.")
|
||||||
|
}
|
||||||
|
if (length(sz) == 1) {
|
||||||
|
stop("Size vector must have at least two elements.")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Reshaping A
|
||||||
|
A <- array(A, sz)
|
||||||
|
return(A)
|
||||||
|
}
|
||||||
27
man/reshape.Rd
Normal file
27
man/reshape.Rd
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
% Generated by roxygen2: do not edit by hand
|
||||||
|
% Please edit documentation in R/reshape.R
|
||||||
|
\name{reshape}
|
||||||
|
\alias{reshape}
|
||||||
|
\title{Reshape array}
|
||||||
|
\usage{
|
||||||
|
reshape(A, sz)
|
||||||
|
}
|
||||||
|
\arguments{
|
||||||
|
\item{A}{input matrix}
|
||||||
|
|
||||||
|
\item{sz}{vector containing the dimensions of the output vector}
|
||||||
|
}
|
||||||
|
\description{
|
||||||
|
Reshapes a matrix according to a certain number of dimensions
|
||||||
|
}
|
||||||
|
\details{
|
||||||
|
This function replicates the functionality of the `reshape()`
|
||||||
|
function on Matlab. This function is basically a fancy wrapper for the
|
||||||
|
`array()` function in R, but is useful because it saves the user translation
|
||||||
|
time. Moreover, it introduces validation code that alter the behavior of
|
||||||
|
`array()` and makes it more similar to `replicate()`.
|
||||||
|
}
|
||||||
|
\note{
|
||||||
|
The Matlab function also accepts as input the dismemberment of sz as
|
||||||
|
scalars.
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue