2012-03-23 160 views
0

我有一个MATLAB脚本,工作得很好,没有任何问题。然后我将它移入MATLAB工具箱并将其添加到缓存中,以便我可以从命令行轻松运行它。MATLAB错误,同时评估uicontrol回调

但是,现在我已将它移到工具箱中,我收到了这些错误消息!脚本或任何内容都没有改变。我用它移动了与脚本相关的所有子文件夹和其他文件。

我不知道为什么它给了我这个错误信息。更糟糕的是,每次运行脚本时都不会这样做!有时如果我关闭MATLAB并再次打开它,脚本运行良好。有时我只需点击GUI中的任何东西就行了!但下次不会呢?你能帮我一下吗?

这是两个错误消息它给了我:

??? Too many outputs requested. Most likely cause is missing [] around 
left hand side that has a comma separated list expansion. 

Error in ==> trials at 13 
picture1 = files1.name; 

Error in ==> semjudge>TRIAL_Callback at 285 
trials; 

??? Error using ==> waitfor 
Error while evaluating uicontrol Callback 

和:

??? Error using ==> nchoosek at 31 
The first argument has to be a scalar or a vector. 

Error in ==> semjudge>START_Callback at 194 
combos = nchoosek(1:nFiles, 2); 

??? Error using ==> waitfor 
Error while evaluating uicontrol Callback 

是什么原因导致这些错误,这样他们只有时会出现(不含在.m文件的任何变化或者GUI或者其他什么...)?

这让我感到无法接受。它工作得很好,尽管没有改变,但停止了。它是否会给我带来错误是不一致的。当它工作时,我找不到任何模式,当它没有时,我找不到任何模式。它给我的错误也没有任何意义。

.m文件(一个或多个)太长,张贴在这里,所以你可以看到他们,在这里:

http://textuploader.com/?p=6&id=cKokK(semjudge.m) http://textuploader.com/?p=6&id=vB9sD(trials.m)

回答

1

看来你脚本并不总是能够找到某些图像文件。

在trials.m files1可能是一个空的结构数组,因此对图片的分配失败。这可能是由dir找不到合适的文件引起的。

在semjudge.m中,如果没有文件,nFiles为0,所以1:nFiles是空数组。

+0

任何想法可能导致这种情况发生?或者我如何修复它?照片当然存在,而且剧本有时会起作用。为什么它只会偶尔找不到图像文件? – 2012-03-26 13:11:04