为啥 Matlab 独立应用程序退出并出现错误“TooManyOutputs”?

Posted

技术标签:

【中文标题】为啥 Matlab 独立应用程序退出并出现错误“TooManyOutputs”?【英文标题】:Why does Matlab standalone application exit with error "TooManyOutputs"?为什么 Matlab 独立应用程序退出并出现错误“TooManyOutputs”? 【发布时间】:2012-02-20 13:32:22 【问题描述】:

我在 Matlab 中创建了一个独立的应用程序,实际上它可以工作,它会显示所需的输出,但它会立即关闭,甚至没有足够的时间检查输出并在 DOS(独立模式)上阅读错误消息:

MATLAB:TooManyOutputs 
Warning: 1 visible figure(s) exist at MCR Termination

If your application has terminated unexpectedly, please note that
applications generated by the MATLAB Compiler terminate when there are no
visible figure windows. See the documentation for WaitForFiguresToDie and
WAITFORCALLBACKS for more information.

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

查看您消息的第一行,TooManyOutputs 表明您在表单的某处有作业

[a b] = somefunction(parameters)

所以您希望将somefunction 的输出放入ab,但somefunction 只返回一个参数。这个bug导致你的程序终止,然后MCR实现程序退出而不关闭你的图形窗口,导致后面的错误信息。

如果我对 TooManyOutputs 的看法是正确的,那么当您直接在 Matlab 中运行代码时,您应该已经收到了该错误消息;您在创建独立应用程序之前尝试过吗?

如果这没有帮助,您可能应该发布一些代码,以便更清楚问题可能来自哪里。

【讨论】:

感谢您的回复,所以我猜这会导致错误 [xi,yi] = getpts1(get(p1,'Parent'));但我在 matlab 命令窗口上没有得到同样的错误,它工作得很好。如何解决:D getpts1 似乎不是标准功能,所以我无能为力。如果您的意思是getpts,这可能不是您的问题,因为该函数确实返回两个值。 我把它改成了getpts,它不会造成麻烦,它仍然可以正常工作,但仍然出现同样的错误,这个[y,x,z]=size(newimg);怎么办?这可以给错误吗?

以上是关于为啥 Matlab 独立应用程序退出并出现错误“TooManyOutputs”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 opticFlow =opticalFlowHS 处出现错误; matlab2015a

使用来自 arduino 串行打印的数据更新 matlab 中的线图,为啥会出现“数组形状错误”错误?

Heroku - 为啥在向 Heroku 推送版本时会出现错误 R12(退出超时)?

请教matlab程序错误

Matlab 计时器在独立应用程序中不起作用

尝试运行 Matlab-Compiler-Runtime 应用程序时,Windows 7 中出现 SxS 错误