如何在Arduino上执行基本的线性代数?


BasicLinearAlgebra库有助于表示矩阵并在Arduino上执行矩阵运算。要安装它,请在库管理器中搜索“BasicLinearAlgebra”。

安装完成后,转到:文件 → 示例 → BasicLinearAlgebra → HowToUse

顾名思义,此示例演示了如何使用此库。虽然此示例中的注释已做了大部分解释,但以下是一些有助于说明此库用法的提示:

在开始之前,您需要包含库并定义BLA命名空间,因为所有函数都封装在BLA命名空间中。

#include <BasicLinearAlgebra.h>
using namespace BLA;

使用以下语法定义矩阵:

BLA::Matrix<3,3> A;

使用以下语法定义向量:

BLA::Matrix<3> v;

要将矩阵/向量的每个元素设置为特定值,请使用Fill()函数。

v.Fill(0);

可以使用.getRowCount().getColCount()分别获取行数和列数。

可以使用.Inverse()函数计算矩阵的逆。

要获取转置,请使用~运算符。A_T = ~A。

可以使用以下语法初始化矩阵:

BLA::Matrix<3,3> B = {6.54, 3.66, 2.95,
                     3.22, 7.54, 5.12,
                     8.98, 9.99, 1.56};

或者使用Eigen风格的逗号表示法:

A << 3.25, 5.67, 8.67,
      4.55, 7.23, 9.00,
      2.35, 5.73, 10.56;

您可以使用||运算符水平连接两个矩阵,使用&&运算符垂直连接。

BLA::Matrix<3,6> AleftOfB = A || B;
BLA::Matrix<6,3> AonTopOfB = A && B;

还有其他几种运算(乘法、加法、减法等)。我们鼓励您阅读整个示例(它有大量注释)以了解这些各种运算的语法。此外,我们强烈建议您阅读此库附带的其他示例。由于此库,现在可以在Arduino板上进行许多复杂的计算。

本文的目的是让您知道此库的存在以及此库的各种可能性。此外,不用说,此库也允许在串行监视器上打印矩阵。

输出

如果您运行此示例,则您的串行监视器输出如下所示:

更新于:2021年7月26日

1K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告