gpt4 book ai didi

c - Matlab Coder 数组大小限制

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:29 25 4
gpt4 key购买 nike

我正在使用 Matlab 处理大型数组中的大量数据。我的程序运行良好,现在我已将其转换为 C,但遇到了最大数组大小问题。

定义emxArray时,定义如下:

struct emxArray_real_T
{
double *data;
int *size;
int allocatedSize;
int numDimensions;
boolean_T canFreeData;
};

这里的问题是变量 size 是一个 int(甚至不是 uint32)所以我可以拥有的最大数组大小C 代码是 2^31。这是个问题。我正在处理数组大小超过 1E9 的数据。

有什么方法可以告诉 Matlab 使用 longlong long 或一些无符号数据类型来表示大小?我找到了以下页面,但我只是希望有一些方法可以解决这个问题,而不是说它不起作用:

https://www.mathworks.com/help/fixedpoint/ug/array-size-restrictions-for-code-generation.html

最佳答案

您不能这样做,正如您链接的文档所解释的那样。

所以我看到了一些解决方法:

  • Matlab 在处理大数组时应该很高效,所以使用 Matlab,

  • 将数组导出到一个文件,在 c 中处理,从 c 中导出并在 Matlab 中导回。 (或使用数据库和一些触发器)。

  • 关于调用 C 的函数:拆分数组并将其分块发送。

关于c - Matlab Coder 数组大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49009915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com