You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 19, 2019. It is now read-only.
Note: Currently, only real-valued dense matrices with double precision are supported.
Matrix initialisation
Matlab
Armadillo C++
ArmadilloJava
Notes
| A() | A() |
A = [ ... ] | A << ... << endr; | A(new double[]{ ... }) | Note: Results in a column vector.
A = [ ... ] | A << ... << endr; | A(new double[][]{ ... }) |
A = B | A(B); | A(B) |
| A(" ... "); | | Not suppported
| A(n) | A(n) | Note: Results in a column vector. Matlab: Use zeros(n, 1)
| A(n, m) | A(n, m) | Matlab: Use zeros(n, m)
| A(n, fill::none) | A(n, Fill.NONE) | Note: Results in a column vector. Matlab: Use zeros(n, 1)
| A(n, m, fill::none) | A(n, m, Fill.NONE) | Matlab: Use zeros(n, m)
zeros(n, 1) | A(n, fill::zeros) | A(n, Fill.ZEROS) | Note: Results in a column vector.
zeros(n, m) | A(n, m, fill::zeros) | A(n, m, Fill.ZEROS) |
ones(n, 1) | A(n, fill::ones) | A(n, Fill.ONES) | Note: Results in a column vector.
ones(n, m) | A(n, m, fill::ones) | A(n, m, Fill.ONES) |
eye(n, m) | A(n, m, fill::eye) | A(n, m, Fill.EYE) |
randu(n, 1) | A(n, fill::randu) | A(n, Fill.RANDU, rng) | Note: Results in a column vector. Note: rng is a random number generator.
randu(n, m) | A(n, m, fill::randu) | A(n, m, Fill.RANDU, rng) | Note: rng is a random number generator.
randn(n, 1) | A(n, fill::randn) | A(n, Fill.RANDN, rng) | Note: Results in a column vector. Note: rng is a random number generator.
randn(n, m) | A(n, m, fill::randn) | A(n, m, Fill.RANDN, rng) | Note: rng is a random number generator.
| A.each_col([I]) | A.each_col([I]) | **Note:** I is a vector. **Matlab:** Use bsxfun
| A.each_row([I]) | A.each_row([I]) | **Note:** I is a vector. **Matlab:** Use bsxfun
Arithmetic operations
Operation
Matlab
Armadillo C++
ArmadilloJava
Plus
A + B
A + B
A.plus(B)
Minus
A - B
A - B
A.minus(B)
Times
A * B
A * B
A.times(B)
Element-wise times
A .* B
A % B
A.elemTimes(B)
Element-wise divide
A ./ B
A / B
A.elemDivide(B)
Negate
-A
-A
A.negate()
Inplace operations
ArmadilloJava: A.view(... is a place holder for any of the specific views given above. Use A.inPlace(Op. ...) for in-place operations on all elements.
| A.in_range(n) | A.in_range(n) | **Matlab:** n > 0 && numel(A) <= n
| A.in_range(span(a, b)) | A.in_range(Span(a, b)) | **Matlab:** a > 0 && numel(A) <= b
| A.in_range(i, j) | A.in_range(i, j) | **Matlab:** i > 0 && j > 0 && size(A, 1) >= i && size(A, 2) >= j
| A.in_range(span::all, span(a, b)) | A.in_range(Span.all, Span(a, b)) | **Matlab:** a > 0 && size(A, 2) <= b
| A.in_range(span(a, b), span::all) | A.in_range(Span(a, b), Span.all) | **Matlab:** a > 0 && size(A, 1) <= b
| A.in_range(span(ai, bi), span(aj, bj)) | A.in_range(Span(ai, bi), Span(aj, bj)) | **Matlab:** ai > 0 && aj > 0 && size(A, 1) >= bi && size(A, 2) >= bj
| A.in_range(a, b, size(n_rows, n_cols)) | A.in_range(a, b, new Size(n_rows, n_cols)) | **Matlab:** a > 0 && b > 0 && size(A, 1) >= n_rows && size(A, 2) >= n_cols
| A.in_range(a, b, size(B)) | A.in_range(a, b, new Size(B)) | **Note:** B is a matrix. **Matlab:** a > 0 && b > 0 && size(A, 1) >= size(B, 1) && size(A, 2) >= size(B, 2)
Inline statistics
Matlab
Armadillo C++
ArmadilloJava
Notes
min(A)
A.min()
A.min()
[v, n] = min(A)
A.min(n)
A.min(n)
[v, n] = min(A)
A.min(i, j)
A.min(i, j)
Matlab: [i, j] = ind2sub(size(A), n)
max(A)
A.max()
A.max()
[v, n] = max(A)
A.max(n)
A.max(n)
[v, n] = max(A)
A.max(i, j)
A.max(i, j)
Matlab: [i, j] = ind2sub(size(A), n)
Reshape/resize
Matlab
Armadillo C++
ArmadilloJava
Notes
| A.set_size(n [, m]) | A.set_size(n [, m]) |
A = reshape(A, n, m) | A.reshape(n, m [, d]) | A.reshape(n, m [, d]) | Default: d = 0
| A.resize(n [, m]) | A.resize(n [, m]) |
Text output functions
Matlab
Armadillo C++
ArmadilloJava
Notes
A
A.print([h])
A.print([h])
Default: h = '' Note: Output may differ
A
A.print(s [, h])
A.print(s [, h])
Default: h = '' Note: Output may differ
A
A.raw_print([h])
A.raw_print([h])
Default: h = '' Note: Output may differ
A
A.raw_print(s [, h])
A.raw_print(s [, h])
Default: h = '' Note: Output may differ
File input/output
ArmadilloJava: Only t = 'ascii' (and 'auto_detect') is supported.
Matlab
Armadillo C++
ArmadilloJava
Notes
save(n, 'A', '-ascii')
A.save(n, raw_ascii)
A.save(n)
Note: n is a string
| A.save(s, raw_ascii) | A.save(s) | **Note:** s is a stream
A = load(n) | A.load(n [, raw_ascii]) | A.load(n) | Note: n is a string Default: t = 'auto_detect'
| A.load(s [, raw_ascii]) | A.load(s) | Note: s is a stream Default: t = 'auto_detect'
| A.quiet_save(n [, t]) | | Not suppported
| A.quiet_save(s [, t]) | | Not suppported
| A.quiet_load(n [, t]) | | Not suppported
| A.quiet_load(s [, t]) | | Not suppported
Inline function operations
Matlab
Armadillo C++
ArmadilloJava
Notes
| A.transform(f) | | *Not suppported* **Note:** f is a function.
| A.transform(l) | | *Not suppported* **Note:** l is a lambda function.
| A.imbue(f) | | *Not suppported* **Note:** f is a function.
| A.imbue(l) | | *Not suppported* **Note:** l is a lambda function.
C++ STL container functions
Matlab
Armadillo C++
ArmadilloJava
Notes
A = []
A.clear()
A.clear()
isempty(A)
A.empty()
A.empty()
numel(A)
A.size()
A.size()
Miscellaneous
Matlab
Armadillo C++
ArmadilloJava
Notes
inv(A)
A.i([s])
A.i()
A'
A.t()
A.t()
A = []
A.reset()
A.reset()
A = reshape(A, size(B))
A.copy_size(B)
A.copy_size(B)
| A.eval() | | *Not suppported*
Non-member functions
Vector/matrix-valued element-wise functions of vectors/matrices
| hist(X [, n [, d]]) | Arma.hist(X [, n [, d]]) | **Default:** n = 10, d = 0
| hist(X, c [, d]) | Arma.hist(X, c [, d]) | **Default:** d = 0
| histc(X, e [, d]) | Arma.histc(X, e [, d]) | **Default:** d = 0
Swap functions
Matlab
Armadillo C++
ArmadilloJava
Notes
fliplr(A)
fliplr(A)
Arma.fliplr(A)
flipud(A)
flipud(A)
Arma.flipud(A)
Reinterpret functions
Matlab
Armadillo C++
ArmadilloJava
Notes
diag(A)
diagmat(A)
Arma.diagmat(A)
Matlab: Use diag(diag(A)) if A is not a vector.
triu(A)
trimatu(A)
Arma.trimatu(A)
tril(A)
trimatl(A)
Arma.trimatl(A)
| symmatu(A) | Arma.symmatu(A) | **Matlab:** B = triu(A); B + B' - diag(diag(A))
| symmatl(A) | Arma.symmatl(A) | **Matlab:** B = tril(A); B + B' - diag(diag(A))
Miscellaneous
Matlab
Armadillo C++
ArmadilloJava
Notes
A'
trans(A)
Arma.trans(A)
find(A [, k] [, s])
find(A [, k] [, s])
Arma.find(A [, k] [, s])
Default: k = 0, s = "first"
diag(A [, k])
diagvec(A [, k])
Arma.diagvec(A [, k])
Default: k = 0 Matlab: Use A(k) if A is a vector.
cumsum(A [, d])
cumsum(A [, d])
Arma.cumsum(A [, d])
conv(A, B)
conv(A, B)
Arma.conv(A, B)
Note: A, B are vectors.
cross(A, B)
cross(A, B)
Arma.cross(A, B)
Note: A, B are 3-dimensional vectors.
kron(A, B)
kron(A, B)
Arma.kron(A, B)
| shuffle(A [, d]) | Arma.shuffle(A [, d], rng) | **Note:** rng is a random number generator. **Default:** d = 0 **Matlab:** A(randperm(size(A, 1)), :) (for d = 0)
unique(A) | unique(A) | Arma.unique(A) |
| vectorise(A [, d]) | Arma.vectorise(A [, d]) | Default d = 0 Matlab: Use A(:) for d = 0 and A(:)' otherwise.
Decompositions
Matlab
Armadillo C++
ArmadilloJava
Notes
chol(X)
chol(X)
Arma.chol(X)
R = chol(X)
chol(R, X)
Arma.chol(R, X)
eig(X)
eig_sym(X)
Arma.eig_sym(X)
V = eig(X)
eig_sym(V, X)
Arma.eig_sym(V, X)
[V, E] = eig(X)
eig_sym(V, E, X [, m])
Arma.eig_sym(V, E, X)
Matlab: E = diag(E)
inv(A)
inv(A [, s])
Arma.inv(A)
B = inv(A)
inv(B, A)
Arma.inv(B, A)
[L, U] = lu(X)
lu(L, U, X)
Arma.lu(L, U, X)
[L, U, P] = lu(X)
lu(L, U, P, X)
Arma.lu(L, U, P, X)
pinv(A [, t])
pinv(A [, t])
Arma.pinv(A [, t])
Default: t = max(size(A))*norm(A)*eps
B = pinv(A [, t])
pinv(B, A [, t])
Arma.pinv(B, A [, t])
Default: t = max(size(A))*norm(A)*eps
princomp(X)
princomp(X)
Not suppported
C = princomp(X)
princomp(C, X)
Not suppported
[C, S] = princomp(X)
princomp(C, S, X)
Not suppported
[C, S, L] = princomp(X)
princomp(C, S, L, X)
Not suppported
[C, S, L, T] = princomp(X)
princomp(C, S, L, T, X)
Not suppported
[Q, R] = qr(X)
qr(Q, R, X)
Arma.qr(Q, R, X)
[Q, R] = qr(A, 0)
qr_econ(Q, R, X)
Not suppported
A \ B
solve(A, B [, s])
Arma.solve(A, B)
X = A \ B
solve(X, A, B [, s])
Arma.solve(X, A, B)
svd(X)
svd(X)
Arma.svd(X)
[~, S, ~] = svd(X)
svd(S, X)
Arma.svd(S, X)
[U, S, V] = svd(X)
svd(U, X, V, X [, m])
Arma.svd(U, X, V, X)
| svd_econ(U, X, V, X [, m]) | | *Not suppported*
| syl(A, B, C) | | *Not suppported* **Matlab:** See [Matlab solution 1-35X8UD](http://www.mathworks.com/support/solutions/en/data/1-35X8UD/?product=ML&solution=1-35X8UD)
| syl(X, A, B, C) | | *Not suppported* **Matlab:** See [Matlab solution 1-35X8UD](http://www.mathworks.com/support/solutions/en/data/1-35X8UD/?product=ML&solution=1-35X8UD)