Matlab repmat函数在c ++中等效

时间:2010-01-28 14:36:15

标签: c++ api matlab

Matlab repmat函数的c ++(在任何API /库中)是否有等价物?

2 个答案:

答案 0 :(得分:4)

否,因为没有要复制的标准C ++矩阵类。如果您使用第三方矩阵库(许多存在),您可能会发现它具有该功能,但如果您推出自己的矩阵类,则还需要提供此功能。

答案 1 :(得分:4)

我正在使用GSL,我有类似的东西:

gsl_matrix * RepMatHorizAlloc(gsl_vector * v, size_t k) {
  gsl_matrix *mat = gsl_matrix_alloc(k, v->size);
  for (size_t i = 0; i < k; ++i) {
    gsl_matrix_set_row(mat, i, v);
  }
  return mat;
}

gsl_matrix * RepMatVertAlloc(gsl_vector * v, size_t k) {
  gsl_matrix *mat = gsl_matrix_alloc(v->size, k);
  for (size_t i = 0; i < k; ++i) {
    gsl_matrix_set_col(mat, i, v);
  }
  return mat;
}