如何在 Arduino 上进行基本线性代数运算?

arduinosoftware & codinghardware

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

安装完成后,请转到:文件 → Examples → BasicLinearAlgebra → HowToUse

顾名思义,此示例演示了如何使用此库。虽然本示例中的注释已经解释了很多,但这里还是提供一些要点来帮助说明如何使用此库。

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


#include 

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 上执行许多复杂的计算。

本文旨在让您了解此库的存在以及它的功能。此外,毋庸置疑,此库还允许在串口监视器上打印矩阵。

输出

如果您运行此示例,您的串口监视器输出将如下所示。


相关文章