Armadillo使用介绍(二):Armadillo语法与Matlab/Octave语法的联系

Matlab/OctaveArmadillo备注
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(k,k)
A = ones(k)A = ones(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 << endr
<< 3 << 4 << endr;element initialisation, with special element endr indicating end of row
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.dat’ AA.save(“A.dat”, raw_ascii);Matlab/Octave matrices saved as ascii are readable by Armadillo (and vice-versa)
load ‑ascii ‘A.dat’A.load(“A.dat”, raw_ascii);
A = randn(2,3);mat A = randn(2,3);
B = randn(4,5);mat B = randn(4,5);
F = { A; B }field F(2,1); F(0,0) = A; F(1,0) = B;fields store arbitrary objects, such as matrices

参考:Armadillo库文档syntax conversion table

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值