我設計了一個函數在讀取矩陣從[x,y]
到[0,0]
和它研究每個值遞歸。r停止遞歸,但它不是一個無限遞歸
對於一個小矩陣,我獲得了很好的輸出,但對於較大的輸出(大約1000),R會打印一條消息,表明我可能有無限遞歸問題,但事實並非如此。我完成追溯並且代碼停止了大約100次迭代。
在考慮函數和無限遞歸之前,有沒有辦法增加允許的迭代次數? 在此先感謝。
我設計了一個函數在讀取矩陣從[x,y]
到[0,0]
和它研究每個值遞歸。r停止遞歸,但它不是一個無限遞歸
對於一個小矩陣,我獲得了很好的輸出,但對於較大的輸出(大約1000),R會打印一條消息,表明我可能有無限遞歸問題,但事實並非如此。我完成追溯並且代碼停止了大約100次迭代。
在考慮函數和無限遞歸之前,有沒有辦法增加允許的迭代次數? 在此先感謝。
可以改變最大遞歸深度(例如10000),具有:
options(expressions = 10000)
您可以檢查與當前值:
getOption("expressions")
話雖這麼說,如果你遍歷對於1000x1000矩陣中的所有元素,您可能會有一個深度爲1000000的遞歸調用,並且您應該重構您的代碼。
我猜這是有點有趣的這個問題正在問StackOverflow嗎?
(只是因爲在C中你會用深的遞歸來溢出你的堆棧) – josliber
沒有看到代碼,在這裏很難幫到你。 – Thomas