【发布时间】:2020-08-28 07:21:06
【问题描述】:
我正在使用 Python(x,y) / Spyder / Sympy 进行一些符号矩阵计算,然后我想将其写入我的 C 程序中。
是否有一种工具(Python 与否)可以将这个以 Python 风格编写的结果矩阵作为一行或多行(有效)C 代码输出?
例如如果我定义
A = [[a, 0] [b, 0]]
B = [[c, d] [0, 0]]
然后让Python计算并打印A*B然后我会得到
Matrix([[a*c, a*d], [b*c d*c]])
然后我想将其转换为:
result[0][0] = a*c;
result[0][1] = a*d;
result[1][0] = b*c;
result[1][1] = d*c;
我可以在 Python 中手动完成它的核心,因为基本算术运算符在 Python 和 C 中是相同的。
但是一旦我们开始使用幂和三角函数,情况就会发生一些变化......而且可能还有其他一些我现在无法想到的东西,它们会在我的矩阵中出现变得更复杂并使用更高级的标准数学函数(相信我,他们会的)。
所以一些可以为我自动化的代码或工具会很棒。
【问题讨论】:
-
您需要自动工具还是简单的代码也有效?
-
我在 Google 上搜索了 Python 到 C 代码生成器,但令人惊讶的是没有发现任何真正有用的东西。但是attempts at such a thing did的链接。
-
不知道这是否是一个有意义的解决方案,但你可以迭代你的python矩阵(假设它是一个二维矩阵),计算像
result[0][0] = a*c;这样的字符串,将它们存储在一个变量中,然后写一个txt文件 -
@Mattia Surricchio 我不明白你的问题。如果“简单代码”是指一些 Python 代码来做我需要的事情,那么它也是自动的(我只需将我的 Python 矩阵放在某个地方并在这些矩阵上运行 Python 代码,而无需手动编写任何 C 代码) 所以我会很高兴。
-
是的,对不起,我表达得很糟糕。我在问手写代码是否可以,或者您正在搜索现有的 Python 工具/库(例如用于向量的 numpy、用于绘图 ecc 的 matplotlib...)
标签: python c matrix converters