C++ 倍频程c++;接口:从vector复制数据

C++ 倍频程c++;接口:从vector复制数据,c++,octave,C++,Octave,我把数据存储在一个向量中,我想把它转换成倍频程进行处理,但我不确定最有效的方法是什么。使用matlab mwArray,我只需执行以下操作: vector<float> vec(100, 0.0); mwArray data_mw(1, 100, mxSINGLE_CLASS); data_mw.SetData(vec.data(), vec.size()); vec向量(100,0.0); mwArray数据_mw(1100,MX单_类); 数据(向量数据(),向量大小());

我把数据存储在一个向量中,我想把它转换成倍频程进行处理,但我不确定最有效的方法是什么。使用matlab mwArray,我只需执行以下操作:

vector<float> vec(100, 0.0);
mwArray data_mw(1, 100, mxSINGLE_CLASS);
data_mw.SetData(vec.data(), vec.size());
vec向量(100,0.0);
mwArray数据_mw(1100,MX单_类);
数据(向量数据(),向量大小());
我想要的是一种类似的将数据转换成八度的方法(我假设是通过FloatMatrix)。有人能给我指出正确的方向吗?

在即将发布的4.2版本中,有一个用于此的构造函数。发布后,您将能够执行以下操作:

Array<T> a (your_std_vector, dim_vector (1, 100));
数组a(你的标准向量,维向量(1100));
同时,您可以拥有自己的功能:

template<typename T>
Array<T>
array_from_vector (const std::vector<T>& v, const dim_vector& dv)
{
  Array<T> a (dv);
  const T* vd = v.data ();
  T* ad = a.fortran_vec ();
  for (octave_idx_type i = 0; i < a.numel (); i++)
    *ad++ = *vd++;
  return a;
}
模板
排列
来自向量的数组(常量std::vector&v、常量dim\u vector&dv)
{
阵列a(dv);
常数T*vd=v.data();
T*ad=a.fortran_vec();
对于(倍频程i=0;i
谢谢。预计4.2发布的时间是什么时候?@ryan0270秋季的某个时候。