簡體   English   中英

提高從Excel到Matlab讀取數據的速度

[英]Improve speed of reading data from excel to matlab

我(當時)在Excel中有五個列,需要讀取並存儲到Matlab變量中。 我目前使用以下代碼:

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行(這將是我最終輸入xlsx中的行數)時,消耗的時間大約相同。

瓶頸似乎正在打開Excel文件。 我對嗎? 如何減少時間消耗?

在我看來,Matlab似乎只需要一次打開Excel文件五次。 如何改善我的代碼?

編輯:通過使用以下代碼,時間消耗減少了大約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')以基本模式從電子表格讀取數據,這是在沒有Excel for Windows的系統上的默認模式。 如果未指定所有參數,請使用空字符串作為占位符,例如num = xlsread(filename,'','','basic')

我的理解是,在裝有Excel的Windows計算機上,MATLAB實際上會調用Excel並使其讀取數據並將其傳遞給MATLAB,而在其他情況下(沒有Excel,沒有Windows或使用顯式'basic'模式),文件將被讀取本機MATLAB實現,這可能會更快,因為單獨啟動Excel可能需要一些時間。

您不應該拆分xlsread調用。 嘗試一次讀取所有數據,例如,讀入單元格數組,並在加載后將其拆分為變量。

編輯:我剛剛看到您的編輯。 我想速度不會更快...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM