如何解决在MATLAB中缓慢读取
| 这是我的MATLAB程序的概要分析运行的结果。我需要运行数十万次(〜100,000次)此模拟。 因此,我需要一种更快的方式来读取Excel文件。 规格:Excel文件的大小为10000x2,每个模拟运行都从5个单独的Excel文件中读取一张这样的工作表。 更新:我将xlsread置于基本模式,并且通过将输入合并到一个文件中来减少了调用次数。下一个目标是立即xlswrite。啊,那种下沉的感觉。 :| 注意:尽管使用dlmread写入CSV文件的速度非常快(大约20倍),但我需要使用.xls文件提供的单独图纸的舒适性。解决方法
如果您需要Excel工作表作为输出,我认为您将无法从xlswrite中花很多时间。
并行化如何?
您可以使用并行计算工具箱吗?或者,如果您的机器支持,则可以运行两个MATLAB实例。如果是这样,您可以考虑两种方法:
让第一个过程执行xlsread部分,模拟部分,然后写入mat文件/纯二进制文件/ CSV,这是最快的方法,同时又可以保持数据完整性。让另一个过程使用xlswrite将matfiles /中间数据文件转换为Excel。
具有N个MATLAB实例/工作者(N取决于您的物理机器容量)。跨N个工作程序并行化整个读取过程-写入部分。注意,我不确定当N个工作人员调用Excel时Excel将如何缩放! (xlswrite使用activeX / MS Excel写入数据)。
与任何并行方法一样,您的工作量会因模拟的复杂性与所需的文件I / O及其性能而异。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。