小编Bat*_*tox的帖子

将Mathematica中的列表传递给c ++(Mathlink)

我只想将一个整数列表传递给用C++编写的函数.我已经设置了模板(.tm)文件和所有,我可以成功调用标量参数的测试函数.使用list参数调用函数的行为就好像根本没有定义函数一样.我怀疑参数类型不匹配.

在模板文档(http://reference.wolfram.com/mathematica/ref/file/file.tm.html)中,列表的数据类型类似于"Int32List".当我使用它时,我的C++函数必须包含列表长度的超长参数.使用列表的唯一示例代码是"sumalist.tm".此示例使用IntegerList(未出现在doku中的类型).

当我使用Int32List时,mprep结果需要一个带有额外整数参数的函数(不要像在doku中写的那样长).当我使用未记录的IntegerList类型时,额外参数的类型为long.

在我使用标量类型的实验中,我遇到了类似的问题 - 在tm文件中使用"Integer"时,c ++函数被正确调用,而不能用"Integer32"识别.

"sumalist.tm"示例也使用了一个奇怪的模式(list:{___ Integer}),我没有找到任何文档.我还想了解Evaluate行的含义(我怀疑它的使用是使函数可调用而没有列表中的花括号).

那么谁知道哪些数据类型真的适合用列表调用c ++函数 - 也许还有实数...?

c++ wolfram-mathematica mathlink

2
推荐指数
1
解决办法
686
查看次数

标签 统计

c++ ×1

mathlink ×1

wolfram-mathematica ×1