ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-11-27 13:54:26  阅读:196  来源: 互联网

标签:c-3 linux matlab


我正在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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有