创建 c_short_type 个数组的矩阵

Create a matrix of c_short_type arrays

我有 <class '__main__.c_short_Array_40000'> 类型的数组,其中有 totalSamples = 40000 个元素。我使用 ctypes 约定 buffer = (ctypes.c_int16 * totalSamples)() 创建它。现在我需要创建几十个这样的数组,所以我需要将它们打包成一个矩阵(比如说 32x40000),其中每个元素的类型都是 <class '__main__.c_short_Array_40000'>。我怎么做?稍后我将遍历该矩阵并将矩阵的每一行提供给 ctypes.byref(myMatrixRow) 函数,该函数需要 <class '__main__.c_short_Array_40000'> 作为输入。

感谢您的帮助。

继续乘以更多维度:

buffer = (ctypes.c_int16 * 40000 * 32)()

以上相当于Cint16_t buffer[32][40000];。请注意维度在 Python 中反向声明,但您仍将像 C:

一样访问
>>> import ctypes
>>> buffer = (ctypes.c_int16 * 40000 * 32)()
>>> buffer
<__main__.c_short_Array_40000_Array_32 object at 0x00000227681FFBC0>
>>> buffer[0]
<__main__.c_short_Array_40000 object at 0x00000227681FFC40>
>>> buffer[31]
<__main__.c_short_Array_40000 object at 0x00000227681FFCC0>
>>> buffer[31][39999]
0