2

所以,我有这个学校项目,我必须在 SciLab 中编写代码来解决一个难题(帐篷)。随着代码越来越好,代码越来越长,但我突然收到一个错误,指出“超出堆栈大小”。

Error log:
!--error 17 
stack size exceeded!
Use stacksize function to increase it.
Memory used for variables: 28875
Intermediate memory needed: 59987764
Total memory available: 10000000

我尝试使用这条线

stacksize('max')

和这个

stacksize(1e8)

这两种方法都不起作用,所发生的只是 SciLab 在没有任何警告的情况下自行关闭。

我是如何超过我的堆栈大小的?有没有办法防止这种情况?我该如何继续?

4

1 回答 1

1

我自己想出了如何解决这个问题。这是我对有同样问题的人所做的错误:

在一个函数中,我使用了这条线

[m,n] = [x,y]

从矩阵中保存对象的坐标。这是在循环中调用的,使用 x 和 y 浏览矩阵。

显然这导致了堆栈大小超出错误,这就是我后来写它的方式:

m = x
n = y

我不知道为什么这条线会导致这个错误,但这就是我解决它的方法。

于 2014-05-13T14:53:23.367 回答