下面是一个使用Armadillo C++库进行子矩阵计算的示例代码:
#include 
#include 
int main() {
    // 创建一个3x3的矩阵
    arma::mat A = {{1, 2, 3},
                   {4, 5, 6},
                   {7, 8, 9}};
    // 提取子矩阵B,从(0,0)到(1,1)
    arma::mat B = A.submat(arma::span(0, 1), arma::span(0, 1));
    // 计算子矩阵C,将B矩阵的每个元素平方
    arma::mat C = arma::square(B);
    // 输出结果
    std::cout << "A:\n" << A << std::endl;
    std::cout << "B:\n" << B << std::endl;
    std::cout << "C:\n" << C << std::endl;
    return 0;
}
  
在这个示例中,我们首先创建一个3x3的矩阵A,并使用submat()函数从A中提取一个2x2的子矩阵B。然后,我们使用square()函数计算子矩阵B的每个元素的平方,得到子矩阵C。最后,我们将A、B和C的结果打印出来。
请确保已安装Armadillo C++库,并在编译时链接正确的库文件,例如使用以下命令编译代码:
g++ -o program program.cpp -larmadillo
其中program.cpp是包含示例代码的文件名。