Tag: matlab coder

emxArray_real_T到C#struct加上初始化

我正在尝试为此C#结构创建一个“构造函数”(包括初始尝试): [StructLayout(LayoutKind.Sequential)] public struct emxArray_real_T { public IntPtr data; public IntPtr size; public int allocatedSize; public int numDimensions; [MarshalAs(UnmanagedType.U1)] public bool canFreeData; public emxArray_real_T(double[] cSharpData) { var arraySize = Marshal.SizeOf(cSharpData[0]) * cSharpData.Length; this.data = Marshal.AllocHGlobal(arraySize); // ???? numDimensions = 1; canFreeData = false; } } C对应的C结构如下所示: typedef struct emxArray_real_T { real_T *data; int32_T *size; int32_T […]

适应二维情况的包装类

这个问题是这个问题的延伸。 我想适应二维情况的包装。 这是我的第一次尝试: public class EmxArrayRealTWrapper : IDisposable { private readonly emxArray_real_T _value; private GCHandle _dataHandle; private GCHandle _sizeHandle; public emxArray_real_T Value { get { return _value; } } public EmxArrayRealTWrapper(double[,] data) { _dataHandle = GCHandle.Alloc(data, GCHandleType.Pinned); _value.data = _dataHandle.AddrOfPinnedObject(); _sizeHandle = GCHandle.Alloc(new int[] { data.GetLength(0), data.GetLength(1) }, GCHandleType.Pinned); _value.size = _sizeHandle.AddrOfPinnedObject(); _value.allocatedSize = data.GetLength(0) […]