问题描述
我在犰狳 10x10 矩阵中有一个非常简单的任务。
任务是将 1,3,4
和 9
列的值更改为 sqrt(2)
。
我已经完成了任务 使用(B是唯一的)
B.cols(columns) *= sqrt(2);
我对每一列都这样做了,并且工作得很好。
这里的问题是阅读文档你可以使用
B.cols( vector of col indices )
我想学习如何使用它,但似乎没有任何效果
解决方法
将“列索引向量”声明为 uvec 并将列索引放入其中。
mat B(10,11,fill::randu);
uvec column_indices = { 1,3,4,9 };
B.cols(column_indices) *= sqrt(2);
(需要说明的是,C++ 具有从零开始的索引,因此第一列的索引为 0,而不是 1)。