python - 在 Python 中将数据从数组转换为 C 结构
问题描述
我正在编写一个测试程序来评估一个用 MATLAB 编写并由 MATLAB Coder 转换为 C 代码的函数。这个函数需要复杂的输入,我想用 CFFI 从一个 python 数组中转换这个数据,然后调用这个函数。
如果我将生成的代码更改为接受一组实数值和一组虚数值,然后将它们组合起来,则该函数可以正常工作,但我想将输入数据作为一个参数传递。
lib = 'path/to/somedll.dll'
C = ffi.dlopen(lib)
some_function = C.some_function
ffi=cffi.FFI()
ffi.cdef("typedef float real32_T;")
ffi.cdef("""typedef struct {
real32_T re, im;
} creal32_T;""")
ffi.cdef("some_function(const creal32_T inputdata[10], ...);")
inputdata = ffi.new("const creal32_T [10]")
# What I would like to do:
for i in range(0, 10):
inputdata[i] = ffi.cast("creal_32T", data_in[i])
some_function(inputdata, ...)
解决方案
推荐阅读
- python - Octave 无法识别 Matlab 的 quadprog 函数
- c++ - esp32 BLE 设备扫描在第二次循环时不起作用
- c# - 通过 Roslyn API 获取分析器结果
- html - HTML 到格式化对象的转换
- python - ImportError:无法从“discord”导入名称“FFmpegPCMaudio”
- python - 如何在 if 语句中定义数字?
- keycloak - Keycloak:在使用 idp 的用户首次登录时分配组
- python - 子类方法可以返回与python中的抽象类不同的类型吗?
- python - 如何从 DataFrame 中选择没有单个零值的列?
- c++ - 使用 wsl 进行 VTK 渲染