您的位置:首页 > 编程语言 > C语言/C++

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

2015-07-17 16:40 465 查看

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、结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: