我定义了一个由4 nxm动态矩阵组成的“ cube
”变量。
然后定义提供nxm尺寸的“ cube
”类型的变量。
编译正常,但在exe时出现崩溃。
请问一些提示吗?
致谢
西尔万
这是代码:
typedef Matrix<Matrix<scomplex, Dynamic, Dynamic>, 4, 1> aCube;
aCube myCube = aCube( 15, 12);
这里是输出:
tstEigen:/usr/local/include/Eigen/src/Core/PlainObjectBase.h:285: Eigen :: PlainObjectBase :: resize(Eigen :: Index, Eigen :: Index)[with Derived = 特征值::矩阵,-1,-1>,4,1>; Eigen :: Index = long int]:声明`(!(RowsAtCompileTime!= Dynamic)|| (rows == RowsAtCompileTime))&&(!(ColsAtCompileTime!= Dynamic)|| (cols == ColsAtCompileTime))&&(!(RowsAtCompileTime ==动态&& MaxRowsAtCompileTime!=动态)|| (行<= MaxRowsAtCompileTime))&& (!(ColsAtCompileTime ==动态&& MaxColsAtCompileTime!=动态)|| (cols <= MaxColsAtCompileTime))&&行> = 0 && cols> = 0 &&“无效的大小 调整矩阵或数组大小时。”'失败。
最终,chtz将该虫子塞入了我的耳朵。参见下面的工作代码:
typedef Matrix<Matrix<scomplex, Dynamic, Dynamic>, Dynamic, 1> aCube;
aCube myCube = aCube( 5);
for ( int i = 0; i < myCube.rows(); i++)
{
myCube(i) = Matrix<scomplex, Dynamic, Dynamic>::Zero(4,2);
}
非常感谢您的帮助。