MATLAB / simulink 中的embedded matlab function 模块报错问题
在matlab中能够很好运行的M文件,将程序放在simulink/embeddedmatlabfunction模块中运行,出现很多错误,比如:1、有些变量需要预定义,和C...
在matlab 中能够很好运行的M文件,将程序放在simulink/embedded matlab function 模块中运行,出现很多错误,比如:
1、有些变量需要预定义,和C语言差不多;我已经解决;
2、有些函数无法调用,如disp,需要申明eml.extrinsic('disp');我已经解决;
等等,还有一些问题,我无法解决,报错如下:
Code Directory :"E:\Work\MATLAB R2010a\MOTOMAN PAPER\dual-quaternion+based+to+solve+6R+robot+\slprj\_sfprj\untitled\_self\sfun\src"Machine (#73): "untitled" Target : "sfun"Chart "Embedded MATLAB Function" (#74):."c2_untitled.h""c2_untitled.c""untitled_sfun.h""untitled_sfun.c""untitled_sfun_debug_macros.h"Interface and Support files:"untitled_sfun_registry.c"Code generation failed Index exceeds matrix dimensions.
其中,E:\…… 是我的工作目录,untitled.mdl是我的simulink 模型名称。
他好像说我的程序矩阵溢出,我也不知道那里溢出,但是,这个程序的M文件我运行,没有任何错误和警告。
不胜感激,如有高手解答,定当高分追加。。
再次谢谢! 展开
1、有些变量需要预定义,和C语言差不多;我已经解决;
2、有些函数无法调用,如disp,需要申明eml.extrinsic('disp');我已经解决;
等等,还有一些问题,我无法解决,报错如下:
Code Directory :"E:\Work\MATLAB R2010a\MOTOMAN PAPER\dual-quaternion+based+to+solve+6R+robot+\slprj\_sfprj\untitled\_self\sfun\src"Machine (#73): "untitled" Target : "sfun"Chart "Embedded MATLAB Function" (#74):."c2_untitled.h""c2_untitled.c""untitled_sfun.h""untitled_sfun.c""untitled_sfun_debug_macros.h"Interface and Support files:"untitled_sfun_registry.c"Code generation failed Index exceeds matrix dimensions.
其中,E:\…… 是我的工作目录,untitled.mdl是我的simulink 模型名称。
他好像说我的程序矩阵溢出,我也不知道那里溢出,但是,这个程序的M文件我运行,没有任何错误和警告。
不胜感激,如有高手解答,定当高分追加。。
再次谢谢! 展开
1个回答
展开全部
可能你的程序中使用了动态数组,例如:
y=1;
y(2)=2;
这样的语句在MATLAB中运行当然没问题,数组会动态扩展,但在Embedded MATLAB Function模块中不允许这样用。
如果还查不出,可以把M文件代码贴出来帮你分析。
y=1;
y(2)=2;
这样的语句在MATLAB中运行当然没问题,数组会动态扩展,但在Embedded MATLAB Function模块中不允许这样用。
如果还查不出,可以把M文件代码贴出来帮你分析。
更多追问追答
追问
似乎不是代码的问题,我有点怀疑是D版不稳定。
同一个程序,有时候报这个错误,有时候可以正常运行,不过能正常运行的概率及其低……
有必要拿到正版上面试试。
追答
所谓D版不稳定的说法,很大程度上属于商家的一种危言耸听。我单位买过正版,但实际上使用多数时候还是用D版(因为正版只买了几个模块,有时候不够用),多年来从没遇到过在D版上不行但正版可以的情况。不过如果你有条件用正版去试,当然也不妨一试。
你贴出来的这个图不能提供任何对分析你所遇到的问题有价值的信息。
如果你出于某种考虑(比如保密)而不愿贴出Embedded MATLAB Function代码,可以试着逐步删减代码,以定位问题出在什么位置。
给你一个古老的建议:遇到问题时,还是请先从怀疑自己入手,因为对于绝大多数个人作者,编出的代码有问题的可能性远远高于软件或硬件系统出BUG的概率。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询