我在一些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
如果数组是2D,您可以通过编写:row,column,然后按行 – 主要顺序为每个单元格来扩展它.
这可能不太方便,但应该足够简单.您也可以将其保存为.mat文件并阅读,但我不建议这样做.在MATLAB中将它放在二进制格式中要容易得多.
如果你需要比文件方便的频率更频繁地移动数据,还有其他选择,但我能想到的只是以某种方式与MATLAB相关联.