填充提升向量或矩阵 [英] filling a boost vector or matrix

查看:193
本文介绍了填充提升向量或矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有一个-EX pression方式分配一个标量来提振矩阵或向量的所有元素?我试图找到重新presenting更紧凑的方式:

 的boost ::数字:: uBLAS库:: c_vector<浮动,N>伏;
用于(为size_t我= 0; I< N;我++){
    v [I] = myScalar;
 }

以下不工作:

 的boost ::数字:: uBLAS库:: c_vector<浮动,N>
   V(myScalar,myScalar,...等等...,myScalar);提高::数字:: uBLAS库:: c_vector<浮动,N>伏;
V = myScalar;


解决方案

由于矢量型号的标准随机访问的容器,你应该能够使用标准的STL算法。是这样的:

  c_vector<浮动,N> VEC;
的std :: fill_n(vec.begin(),N,0.0);

 的std ::填充(vec.begin(),vec.end(),0.0);

这大概也与Boost.Assign兼容的,但你必须检查。

Is there a single-expression way to assign a scalar to all elements of a boost matrix or vector? I'm trying to find a more compact way of representing:

boost::numeric::ublas::c_vector<float, N> v;
for (size_t i=0; i<N; i++) {
    v[i] = myScalar;
 }

The following do not work:

boost::numeric::ublas::c_vector<float, N> 
   v(myScalar, myScalar, ...and so on..., myScalar);

boost::numeric::ublas::c_vector<float, N> v;
v = myScalar;

解决方案

Because the vector models a standard random access container you should be able to use the standard STL algorithms. Something like:

c_vector<float,N> vec;
std::fill_n(vec.begin(),N,0.0f);

or

std::fill(vec.begin(),vec.end(),0.0f);

It probably also is compatible with Boost.Assign but you'd have to check.

这篇关于填充提升向量或矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆