错误使用matlabfunction和分段函数和间隔
12个视图(30天)
显示旧的评论
我使用符号工具箱和我试图使用命令生成一个matlab函数matlabfunction (gg)作为输入,gg是一个向量的分段函数如下:
gg =
分段(Dom×8::间隔(-10年,10),的混合体,10 < =×8 10×8 < = -10,-10)
x5
分段(10 <×8 |×8 < Dom: -10 1×8:间隔([-10],[10]),0)
分段(10 <×8 |×8 < Dom: -10 1×8:间隔([-10],[10]),0)
分段(80 < = t 1 symtrue 0)
其中t、x5和×8是象征性的变量。
当使用matlabfunction()命令,如下所示:
g = matlabFunction (gg,“var”{xNum t},“文件”,“genEqs / g”);
我得到以下错误和警告:
警告:间隔(“DOM_INTERVAL”和“Dom:间隔”)不万博1manbetx支持。使用“0”元素。
错误使用symengine
不能生成的代码对象“t4的混合体”。
错误信谊/ matlabFunction > mup2mat(第404行)
res = mupadmex (“symobj:: generateMATLAB”r.s,另,水疗,0);
错误信谊/ matlabFunction > writeBody(第516行)
身体= mup2mat (eqnk,假,sparseMat);
错误信谊/ matlabFunction > writeMATLAB(第452行)
writeBody (fid, tvalues sparseMat);
错误信谊/ matlabFunction(第183行)
g = writeMATLAB (varnames乐趣、文件,输出、主体选择。优化选择。稀疏,opts.Comments);
错误在antiwindup_RUN_rrrr(第241行)
g = matlabFunction (gg,“var”{xNum t},“文件”,“genEqs / g”);
然而,如果我使用以下分段函数的向量,然后代码非常好工作。
gg =
分段(Dom×8::间隔(-10年,10),的混合体,10 < =×8 10×8 < = -10,-10)
x5
分段(10 <×8 |×8 < Dom: -10 1×8:间隔([-10],[10]),0)
分段(10.1 <×8 |×8 < -10.1,1×8在Dom:间隔([-10.1],[10.1]),0)
分段(80 < = t 1 symtrue 0)
这个的原因是什么?我想不出来。有办法绕过这个错误吗?
提前谢谢你。
尼古拉。
0评论
接受的答案
Uday普拉丹
2021年5月25日
你好尼古拉斯,
信谊t x5的混合体;
vec =[分段(-10 < < 10×8×8 10 < =×8 10×8 < = -10,-10),…
x5,分段(10 <×8 |×8 < -10,-10 < =×8 < = 10,0),…
分段(10 <×8 |×8 < -10,-10 < =×8 < = 10,0),…
分段(80 < = t 1 symtrue 0))
g = matlabFunction(矢量,“var”{x5×8 t},“文件”,g1的,“优化”,0);
注:以上时发生错误
matlabFunction
试图优化生成的代码
g1.m
。每当我们包括两个函数向量具有相同的域的定义与有限的端点(间隔(a, b)型(a, b), [a, b]或[a, b)),上述错误将生成
优化
国旗是打开的。