Armadillo与matlab矩阵运算对照

Armadillo与matlab矩阵运算对照

官方文档

Matlab/OctaveArmadilloNotes
A(1, 1)A(0, 0)indexing in Armadillo starts at 0
A(k, k)A(k-1, k-1)
size(A,1)A.n_rowsread only
size(A,2)A.n_cols
size(Q,3)Q.n_slicesQ is a cube (3D array)
numel(A)A.n_elem
A(:, k)A.col(k)this is a conceptual example only; exact conversion from Matlab/Octave to Armadillo syntax will require taking into account that indexing starts at 0
A(k, :)A.row(k)
A(:, p:q)A.cols(p, q)
A(p:q, :)A.rows(p, q)
A(p:q, r:s)A( span(p,q), span(r,s) )A( span(first_row, last_row), span(first_col, last_col) )
Q(:, :, k)Q.slice(k)Q is a cube (3D array)
Q(:, :, t:u)Q.slices(t, u)
Q(p:q, r:s, t:u)Q( span(p,q), span(r,s), span(t,u) )
A'A.t() or trans(A)matrix transpose / Hermitian transpose (for complex matrices, the conjugate of each element is taken)
A = zeros(size(A))A.zeros()
A = ones(size(A))A.ones()
A = zeros(k)A = zeros<mat>(k,k)
A = ones(k)A = ones<mat>(k,k)
C = complex(A,B)cx_mat C = cx_mat(A,B)
A .* BA % Belement-wise multiplication
A ./ BA / Belement-wise division
A \ Bsolve(A,B)conceptually similar to inv(A)*B, but more efficient
A = A + 1;A++
A = A - 1;A--
A = [ 1 2; 3 4; ]A = { { 1, 2 }, { 3, 4 } };element initialisation
X = A(:)X = vectorise(A)
X = [ A B ]X = join_horiz(A,B)
X = [ A; B ]X = join_vert(A,B)
Acout << A << endl; or A.print("A =");
save ‑ascii 'A.txt' AA.save("A.txt", raw_ascii);Matlab/Octave matrices saved as ascii are readable by Armadillo (and vice-versa)
load ‑ascii 'A.txt'A.load("A.txt", raw_ascii);
A = randn(2,3);B = randn(4,5);F = { A; B }mat A = randn(2,3);mat B = randn(4,5);field<mat> F(2,1);F(0,0) = A;F(1,0) = B;fields store arbitrary objects, such as matrices
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值