创建 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
我有 <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