## VectorizedRoutines.jl

Familiar vectorized routines from R/Python/MATLAB, plus some more.
Author ChrisRackauckas
Popularity
23 Stars
Updated Last
2 Years Ago
Started In
July 2016

# VectorizedRoutines.jl

VectorizedRoutines.jl provides a library of familiar and useful vectorized routines. This package hopes to include high-performance, tested, and documented Julia implementations of routines which MATLAB/Python/R users would be familiar with. We also welcome generally useful routines for operating on vectors/arrays.

# Installation

To install the package, simply use:

```Pkg.add("VectorizedRoutines")
using VectorizedRoutines```

For the latest features, switch to the master branch via:

`Pkg.checkout("VectorizedRoutines")`

# Using the Package

The functions from R/Python/MATLAB are implemented in order to match the functionality of their appropriate packages. In order to not have namespace issues, they are contained in appropriate modules, so you would call the MATLAB functions like:

`mgrid = Matlab.meshgrid(0:1//4:1,0:1//8:1)`

and the R functions like:

```v1=1:5
v2 = 5:-1:1
repped = R.rep(v1,v2)```

Although these look like they are calling some outside package from these languages, they are bonafide Julia implementations and thus can handle Julia specific issues (like using Rational numbers in the meshgrid).

If you want to export the functions to the main namespace, simply use the commands like this:

```using VectorizedRoutines.R
rpois(1,[5.2;3.3]) # Same as R.rpois(1,[5.2;3.3])
```

The original Julia vectorized routines offered here do not need to be prefaced:

```xs = 1:26
pairwise((x,y)->sqrt(x^2 + y^2), xs)```

# Current Functions and Macros

• MATLAB

• `ngrid`
• `meshgrid`
• `accumarray` (fast)
• `accumarray2` (more functionality)
• Compatibility Functions:
• `disp`
• `strcat`
• `num2str`
• `max`
• `numel`
• Python

• R

• `rep`
• `rep!`
• `findinterval`
• `rpois` (fast on vectors)
• `rpois!`
• The package also offers Julia-native vectorized routines that are not found in MATLAB, Python or R.

• `multireshape` (a reshape which can produce views to multiple arrays)
• `pairwise` (apply a function to all pairwise combinations of elements from an array)
• `pairwise!`