提高从excel读取数据到matlab的速度

我有(当时)Excel中的五个颜色,我需要读取和存储到Matlabvariables。 我目前使用下面的代码:

TE=xlsread('../input/input.xlsx','A:A'); AF=xlsread('../input/input.xlsx','B:B'); TAHE=xlsread('../input/input.xlsx','C:C'); HD=xlsread('../input/input.xlsx','D:D'); TCW=xlsread('../input/input.xlsx','E:E'); 

当input.xlsx包含14行时,这需要11秒。 当使用8760行(这将是我最终的inputxlsx中的行数)时,所消耗的时间大致相同。

瓶颈似乎是打开Excel文件。 我对吗? 我怎样才能最小化时间消耗?

对我来说,似乎Matlab打开Excel文件五次,当只有一个似乎是必要的。 我如何改进我的代码?

编辑:通过使用下面的代码,时间消耗减less了约2秒(仍然相当慢):

 temp=xlsread('../input/input.xlsx','A:E'); TE=temp(:,1); AF=temp(:,2); TAHE=temp(:,3); HD=temp(:,4); TCW=temp(:,5); 

xlsread文档 :

num = xlsread(filename,sheet,xlRange,'basic')以基本模式从电子表格中读取数据。 如果不指定所有参数,请使用空string作为占位符,例如num = xlsread(filename,'','','basic')

我的理解是,在安装了Excel的Windows机器上,MATLAB实际调用Excel并让它读取数据并将它们传递给MATLAB,否则(没有Excel,没有Windows或明确的'basic'模式)文件被读取一个原生的MATLAB实现,可能会更快,因为单独的Excel启动可能需要一些时间。

你不应该分开xlsread调用。 尝试一次读取所有的数据,例如,一个单元格数组,并将其分割成一旦加载variables。

编辑:我刚刚看到你的编辑。 我想它不会更快