如何在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板上进行许多复杂的计算。
本文的目的是让您知道此库的存在以及此库的各种可能性。此外,不用说,此库也允许在串行监视器上打印矩阵。
输出
如果您运行此示例,则您的串行监视器输出如下所示:
广告