在c ++中使用模板/宏语法的typedef

时间:2014-04-27 12:23:59

标签: c++ templates eigen

我正在使用特征库,我只是尝试在解决方案后在文件中打印特征值。虽然结果相当简单,但由于返回类类型I的复杂性质,只有一组存储在向量中的浮点数不能将它们转换为可转换代码,或者我不知道是否存在任何内部函数。

typedef CwiseBinaryOp<internal::scalar_quotient_op<ComplexScalar,Scalar>,
ComplexVectorType,VectorType> EigenvalueType;

以下代码在控制台屏幕上打印

cout << "The (complex) numerators of the generalzied eigenvalues are: " << ges.alphas().transpose() << endl;
cout << "The (real) denominatore of the generalzied eigenvalues are: " << ges.betas().transpose() << endl;
cout << "The (complex) generalized eigenvalues are (alphas./beta): " << ges.eigenvalues().transpose() << endl;

如果尝试使用以下代码将特征值写入文件,则会出现error: cannot pass objects of non-trivially-copyable type 'Eigen::GeneralizedEigenSolver<Eigen::Matrix<float, -1, -1> >::EigenvalueType {aka class Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<std::complex<float>, float>, Eigen::Matrix<std::complex<float>, -1, 1>, Eigen::Matrix<float, -1, 1> >}' through '...'|错误

file_in = fopen("result.txt","w");
if (file_in!=NULL )
{
    fprintf(file_in,"aasd");
    fprintf(file_in,"Eigen values are : %f",ges.eigenvalues());
}
fclose(file_in);

如果我查看特征值类型定义,它是EigenvalueType:typedef CwiseBinaryOp<internal::scalar_quotient_op<ComplexScalar,Scalar>,ComplexVectorType,VectorType> EigenvalueType;,它对我没有任何暗示。

我应该如何将该类类型转换为浮动值

0 个答案:

没有答案