matlab导成c,如何将数据从C导出到MATLAB(在不同的机器上)

在Linux环境中用C程序生成长双浮点数据后,需要将其导出到MATLAB。虽然顾问建议使用printf通过ASCII文件(如CSV)进行导出,但担心这可能较慢且精度损失。讨论了MAT文件的选项,但编译问题阻碍了实现。文章建议ASCII格式由于其可读性和MATLAB的内置支持(如textread和dlmread)而成为首选,尽管二进制文件可能更快,但ASCII的兼容性和稳定性更优。
摘要由CSDN通过智能技术生成

我正在Linux集群上的C程序中生成长双浮点数据.我需要将数据导出到尚未安装在群集上的Matlab.

什么是最好的方法?我的顾问说要使用printf语句导出.我认为他的意思是将数据发送到逗号分隔的文件(和fprintf).但是在我看来,这可能会很慢,并且会占用太多内存,并且我们可能会失去很多精度.

我发现this web page可用于读写.MAT文件,但我并不真正理解页面或the example,我已将其复制到群集中,但无法编译(因为它缺少显然来自MATLAB的库).

从Linux / C向Windows / MATLAB导出数据的最佳,最简便或最快的方法是什么?如何开始使用该方法?当您回答我刚接触C时,将被告知,可能需要帮助弄清楚如何获取,安装,配置和链接任何库.但是一旦完成,我想我会很擅长学习使用它们.

解决方法:

为什么您认为自己会失去精度? CSV的唯一缺点是ASCII文件比二进制文件需要更多的存储空间,但是在当今这样的时代,以良好的剪发价格获得数TB的存储空间,这似乎不是问题.

仅当您在千兆字节上写入千兆字节时,速度才会明显变慢,但通常计算所需的时间要长得多,以至于ASCII和二进制之间的差异完全可以忽略不计(并且如果计算所需的时间不长:为什么需要群集)然后?)

无论如何,我都会选择ASCII码-如何在两个地方记录和读取一些二进制blob,在写入端和读取端都容易产生bug,因为没有人类可以读取文件等.此外,MAT文件的格式可能会在Matlab的下一个发行版中更改(与过去一样).

使用ASCII时,您不会遇到任何问题,我唯一想到的缺点是您必须在Matlab中编写一个小型的群集特定文件读取器(与找出所有错误并维护MAT相比,它的工作量要少得多.文件编写器).

无论如何,在Matlab中有大量用于ASCII的工具:textread,dlmread,importdata等.在C端,确实只需使用fprintf(文档here).

标签:c-3,linux,matlab

来源: https://codeday.me/bug/20191127/2074056.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值