【发布时间】:2014-07-12 09:37:42
【问题描述】:
执行在 MATLAB 2012b 中未失败的代码时,我在 MATLAB 2013a 中遇到了标识符为“MATLAB:TooManyOutputs”的错误。
产生此错误的行是
handles.Project = project;
其中project 是一个结构(大小1x1),handles 是一个带有我创建的GUI 句柄的结构。 Project 是结构体handles 的一个字段,在上述行之前不存在。
对我来说似乎很奇怪的是,如果我在显示的行之前的行中放置一个断点,我会对其进行注释,并且当由于该断点而暂停执行时,我会在 MATLAB 命令行中手动编写@ 987654326@没有错误。
错误可能在哪里?怎么了?
谢谢。
编辑:还有另一个无法解释的问题。我发现这一行不会使我的程序在 MATLAB 2013a for UNIX 中崩溃,但它在 MATLAB 2013a for Windows 中会崩溃。
EDIT2:我发现 MATLAB 2013a for Windows 中有一个名为 project 的新函数,所以我猜 MATLAB 认为我在调用它而不是我真正想要的变量。问题是我无法更改变量的名称(因为它存储在一个 MAT 文件中,该文件由另一个我无权访问其代码的程序创建)。那么,有没有办法说:“MATLAB,我希望你使用这个变量而不是你的新函数”?
【问题讨论】:
-
你能在该行设置一个断点并在它停在那里时输入
which project吗?输出是什么?必须有其他名为 project 的东西覆盖了结构的可见性。 -
@Daniel
which project返回:project is a variable.如果我在 MATLAB 命令行中写project,则表明它是一个包含两个字段的结构,这是正确的。 -
@Daniel 你是对的。请看我的 EDIT2 评论。
-
显示您从 MAT 文件加载数据的代码部分
-
您可以将数据加载为
D = load([..]),然后访问包含在 MAT 文件中的各个变量:D.project(这里没有歧义)。
标签: matlab