是否有某种简单的方法将整数数组从C程序传输到matlab?我在网上找到了一些有关如何在C ++和Matlab之间进行操作的指南,但没有关于C到Matlab的指南。
我有几个用C编写的程序生成的1180个浮点数组。现在我想在Matlab中可视化此数据。我可以让C程序导出创建硬编码的数组所必需的Matlab代码,但这似乎不必要地令人反感。
我可以只使用C ++方法并使用C ++编译器来编译我的C程序,但现在我很好奇它是否也可以在C中完成。
Matlab可以导入.mat文件,但这些文件似乎已加密或为二进制格式。
请不要提供有关如何在C中可视化数据的建议,我必须在Matlab中进行处理。我在Matlab中有一段代码返回了奇怪的结果,我用C语言编写了等效的代码,现在我想看看结果是否有所不同。通过这种方式,我可以调试我的Matlab代码,因为最终结果必须在Matlab代码中上交。
到目前为止,我的C代码。另外,我在上载时犯了一个错误,我想传输一个整数数组。
FILE *f = fopen("Ps.bin", "wb");
for(int n = 1; n < N + 1; n++)
{
converter.asInt = Ps[n];
for(int i = 0; i < 4; i++)
{
fwrite(&converter.asBytes[i], sizeof(char), 1, f);
}
}
fclose(f);
这是我在matlab中尝试过的方法,但是都没有给出正确的结果。在所有情况下,matlab都会生成一个双精度数组,我绝对不希望这样。它只生成一个值是以下三个值之一的数组:0、0.0000和4.925。
Ps = fread(fopen('Ps.bin'))
Ps = fread(fopen('Ps.bin'), 1180)
Ps = fread(fopen('Ps.bin'), 1180, 'uint32')
Ps = fread(fopen('Ps.bin'), 1180, '2 * uint16')