c++ - 将 Matlab 变量传输到 C

标签 c++ c matlab variables

我在一些 Matlab 代码中有一个非常大的数据结构,它是数组元胞的形式。我们想开发 C 代码来处理这些数据,但我需要一些方法来存储 Matlab 变量(我们在 Matlab 中生成)并在 C/C++ 程序中打开它。桥接这两个程序以便传输数据的最简单方法是什么?

最佳答案

如果您只是偶尔将数据从 MATLAB 移动到 C,最简单的方法是将其写入二进制文件,然后从 C 文件中读取。这当然会使 C 代码完全独立于 MATLAB。

如果您的数据结构只是常规数组的元胞数组,则不必那么困惑,例如

a{1} = zeros(1,5);
a{2} = zeros(1,4);

您可以只为每个单元格写一个标题,然后将数据写入文件。在上述情况下,这将是:

[length{1} data{1} length{2} data{2}]

在上面的例子中:

5 0 0 0 0 0 4 0 0 0 0

如果数组是二维的,您可以通过编写以下内容来扩展它:行、列,然后是每个单元格的行优先顺序的数据。

这可能不是很方便,但应该足够简单。您也可以将其另存为 .mat 文件并阅读,但我推荐这样做。在 MATLAB 中将其转换为二进制格式要容易得多。

如果您需要更频繁地移动数据而不是方便的文件,还有其他选择,但我能想到的都以某种方式与 MATLAB 相关联。

关于c++ - 将 Matlab 变量传输到 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8884488/

相关文章:

Matlab: int32(2)/int32(3) 给出 1。如何得到正常的整数除法?

c++ - 初始化一个动态 vector 列表

c# - 在 WPF 中单击按钮执行文件操作

c - 从 double 填充复数矩阵

matlab - 从数组中排除元素

string - Matlab字符到字符串的转换问题。使用什么功能?

c++ - 如何在派生类中创建与基类同名的函数

c++ - 编译时素数检查

pcap_loop 的最后一个参数中的编译器警告。指向不同大小的整数

C - char* 模板是一种特殊类型的字符串吗?