Armadillo C++ linear algebra library 学习笔记(6)——生成矩阵

1、主对角线为1的矩阵

A、通过调用”eye(rows, cols)”函数生成主对角线为1的矩阵。
B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
    //生成大小为3x4,主对角线为1的矩阵
    mat B = eye(3,4);
    B.print("矩阵B:\n");

    system("pause");
    return 0;
}

C、结果
这里写图片描述

2、把区间[a,b]分成n份

A、通过调用“linspace(start, end, n)”函数把区间[start,end]分成n份。
B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
    //把区间[a,b]分成n份,生成的是列向量。
    colvec colVec = linspace(1,10,20);//把[1,10]分成20份
    colVec.print("列向量colVec:\n");

    system("pause");
    return 0;
}

C、结果
这里写图片描述

3、以矩阵为元素构造矩阵

A、通过调用“repmat(A, p, q)”函数构造矩阵,其元素为矩阵A,大小为pxq。
B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
    //以矩阵A整体为单位,生成大小为2x3的矩阵
    mat A = randu<mat>(3, 3)*10;
    A.print("矩阵A:\n");
    //矩阵D为:以矩阵A为元素的,大小为2x3的矩阵
    mat D = repmat(A,2,3);
    D.print("D:\n");

    system("pause");
    return 0;
}

C、结果
这里写图片描述

4、生成托普利兹(Toeplitz)矩阵

A、通过调用”toeplitz(A, B)”函数生成托普利兹(Toeplitz)矩阵。
B、示例

#include <iostream>
#include <armadillo>
using namespace arma;
int main()
{
    //生成托普利兹矩阵
    mat B = randu<colvec>(5)*10;
    mat C = randu<colvec>(5)*10;
    B.print("向量B:\n");
    C.print("向量C:\n");
    //矩阵E为托普利兹矩阵
    mat E = toeplitz(B,C);
    E.print("向量E:\n");

    system("pause");
    return 0;
}

C、结果
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值