在MATLAB中缓慢xlsread

时间:2011-05-30 06:58:45

标签: excel matlab file-io

以下是我的MATLAB程序的剖析仿真运行的结果。我需要运行这个模拟几十万次(~100,000次)。

The abnormally slow xlsread

因此,我需要一种更快速的方式来阅读Excel文件。

规格:Excel文件为10000x2单元格,每个模拟运行正在从5个单独的Excel文件中读取一个这样的工作表。

UPDATE:我将xlsread置于基本模式,并通过将输入组合到单个文件中来减少调用次数。下一个目标是xlswrite。啊,那种下沉的感觉。 :|

Updated Profile Summary

注意:虽然使用dlmread写入CSV文件非常快(大约20次),但我需要使用.xls文件提供的单独工作表。< / p>

1 个答案:

答案 0 :(得分:1)

如果您需要 Excel工作表作为输出,我认为您无法从xlswrite中获取更多东西。

并行化怎么样?

您是否可以访问并行计算工具箱?或者,如果你的盒子支持它,你可以运行两个MATLAB实例。如果是这样,您可以考虑两种方法:

  1. 让第一个进程执行xlsread部分,模拟部分,然后写入mat文件/纯二进制/ CSV,这是保持数据完整性的最快速度。有另一个进程使用xlswrite将matfiles /中间数据文件转换为Excel。

  2. 有N个MATLAB实例/工作人员(N取决于您的物理机器容量)。在N个工作者之间并行化整个读取 - 处理 - 写入部分。注意,我不确定在N个工作人员调用时Excel会如何扩展! (xlswrite使用activeX / MS Excel写入数据)。

  3. 作为任何并行方法,您的里程数将根据模拟的复杂程度与所需的文件I / O及其性能而有所不同。