2017-01-09 76 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