2015-06-21 39 views
1

我使用CasADi符号框架来研究机器人问题。由于我的符号方程非常长,我决定将它们导出到Mathematica以简化它们。问题是,当我使用命令如何避免Python 2.7切割三点过长的符号表达式?

with open("dyn_eq.txt", "w") as eq: 
    print>>eq, f_x 

写在文本文件中这些方程,巨蟒切断他们(因为他们太长时间),使用三个点

+(-0.4726*sin((x_0+x_1))))+...)*...))-...))))*...))*...)+...)+...))))+...)] 

和数学不能明显地阅读它们。

我使用了错误的命令吗?有没有办法避免Python切割这些表达式?

+0

请向我们展示您的示例中的原始公式。也许[自我参考](http://stackoverflow.com/questions/13851581/python-printed-a-list-three-dots-appeared-inside-sublists)可能是你的问题? – Raoul

+0

你的意思是整个文本文件?无论如何,我不认为这个问题是自我引用:在script.py中,我可以设置我想模拟的身体的数量(我学习的身体更多的是我想要打印的表达式)以及少量身体这些点不会出现。当我设置更高的数字时,这些点出现在符号列表每一项的末尾,我确定它是一个长度问题......也许有一种方法可以设置一个“视图选项”来防止Python切割表情?你同意吗?谢谢! –

回答

1

这实际上是一个输出限制CasADi的功能而不是Python本身的。您可以通过使用

f_x.getMaxNumCallsInPrint()

(默认10000L)验证了此限制,并最终通过其伴侣功能改变

f_x.setMaxNumCallsInPrint(20000L)

(如将呼叫值更改为20K)

来源:http://casadi.sourceforge.net/v1.5.0/api/html/d2/db3/classCasADi_1_1SX.html

+0

它完美的工作,谢谢! –