在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在将解决方案的Matlab由2008a升级到2009a之前,我想当然的认为那将是一件非常简单的事情,因为Matlab应该是向下兼容的。 于是一开始我直接将用08a编写的.m文件在09a中直接进行打包,可惜在C#中调用相应的Matlab类库时提示错误。在郁闷了许久之后,终于找到了出错的原因。 下面,不妨先通过一些非常有趣的小实验来说明我发现的问题吧! 测试用的项目为教程二中创建的项目,仅在其基础上修改.m文件并进行测试。 以下为测试列表: 测试一:在.m文件中添加一行warning。 测试二:在.m文件中添加两行warning(连续)。 测试三:在.m文件中添加两行warning(不连续)。 测试四:在.m文件中添加一行warning+一行disp(连续)。 测试五:在.m文件中添加一行warning+一行disp(不连续)。 测试六:在.m文件中添加一行disp+一行warning(连续)。 测试七:在.m文件中添加一行disp+一行warning(不连续)。 测试八:在.m文件中添加一行disp。 测试九:在.m文件中添加两行disp(连续)。 测试十:在.m文件中添加两行disp(不连续)。 测试十一:在.m文件中添加多行disp。 测试十二:在.m文件中有一行无分号(为了在Command Window中显示变量值,以下同理)。 测试十三:在.m文件中有一行无分号+一行disp。 测试十四:在.m文件中有两行无分号(连续)。 测试十五:在.m文件中有两行无分号(不连续)。 (以下应该还有很多可能的测试,不过就先测这么多,已经能够说明一些问题了) 测试一:在.m文件中添加一行warning。 在twice.m文件中增加一行warning代码,如图所示。 重新编译并执行,可以顺利通过。 测试二:在.m文件中添加两行warning(连续)。 在twice.m文件中增加两行连续的warning代码,如图所示。 重新编译并执行,将会发现如下错误: 测试三:在.m文件中添加两行warning(不连续)。 在twice.m文件中增加两行不连续的warning代码,如图所示。 重新编译并执行,出现和测试三一样的错误: 测试四:在.m文件中添加一行warning+一行disp(连续)。 在twice.m文件中增加连续的一行warning+一行disp代码,如图所示。 重新编译并执行,这次提示的是disp的错误: 测试五:在.m文件中添加一行warning+一行disp(不连续)。 在twice.m文件中增加不连续的一行warning+一行disp代码,如图所示。 重新编译并执行,出现和测试四一样的错误: 测试六:在.m文件中添加一行disp+一行warning(连续)。 在twice.m文件中增加连续的一行disp+一行warning代码,如图所示。 重新编译并执行,这次提示的是warning的错误: 测试七:在.m文件中添加一行disp+一行warning(不连续)。 在twice.m文件中增加不连续的一行disp+一行warning代码,如图所示。 重新编译并执行,出现和测试六一样的错误: 测试八:在.m文件中添加一行disp。 在twice.m文件中增加一行disp代码,如图所示。 重新编译并执行,可以顺利通过。 测试九:在.m文件中添加两行disp(连续)。 在twice.m文件中增加连续的两行disp代码,如图所示。 重新编译并执行,可以顺利通过。 测试十:在.m文件中添加两行disp(不连续)。 在twice.m文件中增加不连续的两行disp代码,如图所示。 重新编译并执行,可以顺利通过。 测试十一:在.m文件中添加多行disp。 在twice.m文件中增加多行disp代码,如图所示。 重新编译并执行,可以顺利通过。 测试十二:在.m文件中有一行无分号(为了在Command Window中显示变量值,以下同理)。 在twice.m文件中增加一行无分号的代码,如图所示。 重新编译并执行,可以顺利通过。 测试十三:在.m文件中有一行无分号+一行disp。 在twice.m文件中增加一行无分号+一行disp代码,如图所示。 重新编译并执行,提示disp错误: 测试十四:在.m文件中有两行无分号(连续)。 在twice.m文件中增加两行连续的无分号代码,如图所示。 重新编译并执行,提示出错,如图所示。 测试十五:在.m文件中有两行无分号(不连续)。 在twice.m文件中增加两行不连续的无分号代码,如图所示。 重新编译并执行,出现和测试十四同样的错误: 好啦,看了上面这么多的实验,大家应该看出来一点什么了吧! Matlab 2009a貌似比Matlab 2008a严格的多,即最多只允许打包的代码中向Command Window执行一行输出,否则就会报错。 因此在进行版本升级的时候,必须修改相应的.m文件,尽可能让其不向Command Window中输出任何信息。 此外,考虑到版本的兼容性,2009a还会经常自作聪明的提示你某个方法已过期,这就会造成不必要的输出。 好吧,对于这种情况,我就在下一教程中介绍一个瞒天过海的方法! (欢迎继续关注!)
参考文献: 1. http://www.cnblogs.com/horizon_king/archive/2011/01/21/1941387.html |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论