如何在显示非常大的数组时挂断MATLAB IDE?

Dan*_*ler 2 ide matlab hang

假设我正在使用MATLAB IDE并且碰巧在我的工作空间中有一些非常大的对象(例如500k +元素的数组).现在,假设我愚蠢地偶然双击其中一个非常大的变量,这会触发对数组编辑器的加载.不幸的是,对于这么大的数组,MATLAB只是挂起.

我尝试过CTRL + C,CTRL + BREAK,CTRL + D,但似乎没有人能够中断IDE的行为.我知道我可以强制matlab退出,但是首先将所有这些变量读入工作区需要花费很多时间,而且我可能在编辑器窗口中有未保存的更改等.

sla*_*ton 5

使用该命令启动变量编辑器openvar.要解决您的问题,您可以利用Matlab的怪癖,使得函数被具有相同名称的变量屏蔽.例如,如果创建名为plotplot()函数的变量,则该函数将停止工作.

解决方案,虽然是hackish,只是简单地创建一个名为的空变量openvar.然后,任何时候尝试打开变量编辑器都会失败,因为该函数openvar被变量隐藏.

如果要再次使用变量编辑器,则简单调用clear openvar删除变量,该函数将被取消屏蔽.

  • 为什么不写另一个openvar函数(你自己的)来包装真正的openvar函数.通过这种方式,您可以在那里添加大型矩阵的检查,并询问用户"你确定吗?这需要一段时间!" (7认同)
  • @DanielKessler:最简单的解决方案是简单地将`openvar`的内容复制到修改后的函数中(`edit openvar`,其余应该是显而易见的). (2认同)
  • 看看我是怎么做到的http://stackoverflow.com/questions/11781634/how-to-wrap-a-built-in-funciton-with-a-new-function-of-the-same-name (2认同)