线性代数库 Armadillo 学习笔记

项目环境

Language Package IDE Complier OS
c99++ Armadillo-10.7.5 Xcode 12 clang-1200.0.32.21 OS Cataline 10.15.7

Xcode 项目配置

image-20220112000629019

分别添加 libblas.tbd,libcblas,Accelerate.framework组件.

前置代码

#include <iostream>
#include "../armadillo-10.7.5/include/armadillo"
using namespace std;
using namespace arma;
int main(int argc, const char * argv[]) {
    cout << "Armadillo version: " << arma_version::as_string() << endl;
    // insert code here...
    return 0;
}

矩阵基本操作

全零矩阵

mat A( 3, 3, fill::zeros );

全一矩阵

mat A( 3, 3, fill::ones );

对角矩阵

mat I( 3, 3, fill::eyes );

打印一个矩阵

A.print("A:");

修改获取矩阵元素

auto  x = A.at(1,1);
A(1,1)  = 4;

获取某行某列

vec y1 = A.row(1);
vec x2 = A.col(2);

获取对角向量

vec D = A.diag();

转置矩阵

mat B = A.t();

逆矩阵

mat B = inv(A);

矩阵迹

auto t = trace(A);

行列式值

auto d = det(A);

实用案例

解线性方程组

{ 10 x 1 + 10 x 2 + 10 x 3 + b = 30 100 x 1 + 10 x 2 + 10 x 3 + b = 60 10 x 1 + 100 x 2 + 10 x 3 + b = 70 10 x 1 + 10 x 2 + 100 x 3 + b = 65 \begin{cases} &10x_1+10x_2+10x_3+b &= 30\\ &100x_1+10x_2+10x_3+b &= 60\\ &10x_1+100x_2+10x_3+b &= 70\\ &10x_1+10x_2+100x_3+b &= 65 \\ \end{cases}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值