如何在犰狳 C++ 中修改矩阵中的某些列

问题描述

我在犰狳 10x10 矩阵中有一个非常简单的任务。 任务是将 1,3,49 列的值更改为 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)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...