• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab和c#联合仿真之三

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在将解决方案的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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中动态调用TXMLDocument的经历发布时间:2022-07-18
下一篇:
DelphiXE2之FireMonkey入门(41)-控件基础:TListBox发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap