2017-01-09 43 views
1

理解错误我有征的问题如下:如何从征

LKSSP0.5psk:/usr/include/eigen3/Eigen/src/Core/Block.h:134:征: :Block :: Block(XprType &,Eigen :: Index,Eigen :: Index)[with XprType = Eigen :: Matrix; int BlockRows = 2; int BlockCols = 2; bool InnerPanel = false;征::指数=长整型]:断言`STARTROW> = 0 & & BlockRows> = 1 & & STARTROW + BlockRows < = xpr.rows()& & startCol> = 0 & & BlockCols> = 1 & & startCol + BlockCols < = xpr.cols()'失败。 命令通过信号终止6 27650.16user 5.67system 1:17:594 34elapsed%的CPU(0avgtext + 0avgdata 525396maxresident)K 328inputs + 77192outputs(1major + 17571minor)页面错误0swaps

谁能帮助理解它的意思所以我可以解决这个问题?谢谢。

+4

这意味着您做错了某些事情,应该逐步通过您的代码与调试器。如果你不知道如何使用调试器,我建议你从[这个简单的教程]开始(http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。 –

回答

2

此消息的关键词是“断言”。 assertion失败,因为未满足基本矩阵条件。调试代码,找到包含断言的行并检查条件。

这部分:

断言`STARTROW> = 0 & & BlockRows> = 1 & & STARTROW + BlockRows < = xpr.rows()& & startCol> = 0 & & BlockCols> = 1 & & startCol + BlockCols < = xpr.cols()'失败。

列出了为使程序继续运行(例如startRow> = 0)必须满足的条件,但是除非您调试代码并检查,否则您不知道哪些条件实际上不符合要求。在这种情况下,您指定了负数的列/行,指向矩阵边界外的元素或BlockRows变量的值小于1.

+0

感谢您的解释。 –

+1

没问题。如果你认为这个答案满足你,你可以接受除了upvoting以表明你认为你的问题得到解决。 – KjMag