Armadillo使用介绍(四):向量创建

创建

vec v1 = "1,2,3,4";
vec v2 = initializer_list < double > {1, 2, 3, 4};

vec v3; //向量未初始化
v3 << 1 << 2 << 3 << 4;

vec v4(v1);
double *elem = new double[4]{1, 2, 3, 4};
vec v5(elem, 4); //这个是从elem指针指向的内存中复制元素,所以是安全的
vec v6(elem, 4, false);
//这个是直接使用elem指针所指向的内存,所以要保证elem所指向的内存在v6的生命期内有效且不被它人使用
//而且向量的大小不能被直接或间接改变
vec v7(elem, 4, false,false);
//这个是直接使用elem指针所指向的内存,所以要保证elem所指向的内存在v6的生命期内有效且不被它人使用
//而且向量的大小可以重新设定,大小重新设定后就不使用elem指向的内存了

vector<double> e = { 1, 2, 3, 4 };
vec v8(e);
mat m1 = "1;2;3;4;";
vec v9(m1); //如果m1不是列向量,将抛出std::logic_error异常
//以上v1,v2...v9都是相同的列向量,都为(1,2,3,4)T

vec v10 = vec::fixed<4>();
//创建一个固定大小的向量,并且只要创建后向量的大小(元素的个数)不可以改变。
//使用固定大小的向量运算速度快于动态分配的
vec v11 = vec::fixed<4>("1,2,3,4");
vec v12 = vec::fixed<4>();
v12 << 1 << 2 << 3 << 4;
//...以此类推,之前使用的几种构造函数都可以使用

//特别要指出向量的初始的填充构造函数
vec v13(4); //这个创建一个4个元素的向量
vec v14(4, fill::zeros); //创建一个4个元素的向量,每个元素都是0
vec v15(4, fill::ones); //创建一个4个元素的向量,每个元素都是1
vec v16(4, fill::randu); //创建一个4个元素的向量,每个元素是[0,1]之间的随机数
vec v17(4, fill::randn); //创建一个4个元素的向量,每个元素都是从一组平均值为0,方差为1的呈正态/高斯分布的随机数
使用Armadillo的教程如下: 第一步是下载和安装Armadillo。你可以在官方网站上找到下载链接和安装指南。 安装完成后,你需要在你的C++代码中包含Armadillo的头文件。使用以下语句: ```cpp #include <armadillo> using namespace arma; ``` 接下来,你可以开始使用Armadillo进行线性代数操作了。Armadillo提供了丰富的函数和操作符,可以进行矩阵运算、线性方程求解、特征值计算等等。 例如,你可以创建一个矩阵并进行基本的操作,如下所示: ```cpp mat A(4, 4, fill::ones); // 创建一个4x4的矩阵,并填充为1 mat B(4, 4, fill::eye); // 创建一个4x4的单位矩阵 mat C = A + B; // 矩阵相加 mat D = A - B; // 矩阵相减 ``` 除了基本操作外,Armadillo还提供了更多高级功能,比如矩阵的转置、求逆、计算特征值和特征向量等等。你可以参考Armadillo的官方文档和示例代码,以了解更多用法和功能。 总结起来,使用Armadillo进行线性代数操作的教程包括下载和安装、包含头文件、使用基本操作符进行矩阵运算,以及探索更多高级功能。希望这个教程对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++线性代数Armadillo(犰狳) 使用初体验(一)](https://blog.csdn.net/qq_43254966/article/details/106685428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值