【发布时间】:2017-06-28 03:34:26
【问题描述】:
我制作了一个脚本,其中包含一个 for 循环,从 533 个不同的 excel 文件中选择列并将它们放入矩阵中以便进行比较,但是该过程花费的时间太长(它昨天运行了 3 个小时并且没有甚至一半!)。
我知道 xlsread 自然很慢,但是有谁知道如何让我的脚本运行得更快?脚本如下,谢谢!!
%Split the data into g's and h's
CRNum = 533; %Number of Carrington Rotation files
A(:,1) = xlsread('CR1643.xlsx','A:A'); % Set harmonic coefficient columns
A(:,2) = xlsread('CR1643.xlsx','B:B');
B(:,1) = xlsread('CR1643.xlsx','A:A');
B(:,2) = xlsread('CR1643.xlsx','B:B');
for k = 1:CRNum
textFileName = ['CR' num2str(k+1642) '.xlsx'];
A(:,k+2) = xlsread(textFileName,'C:C'); %for g
B(:,k+2) = xlsread(textFileName,'D:D'); %for h
end
【问题讨论】:
-
也许您可以将多个文件合并为一个文件,然后从其中的不同工作表中读取。在这种情况下,您只需要“打开文件进行阅读”一次。请参阅xlsread1 了解为什么它会更好。
-
真正需要多快?如果你让它昨天运行它可能现在已经完成了。 (如果您选择这样做,您可能希望随时打印进度。)
-
我想它不必非常快,但是昨天我在我的笔记本电脑上运行它,它开始过热(这是一台糟糕的笔记本电脑),所以我决定在大学里运行它今天的校园电脑速度更快!!我如何打印进度?
-
我也去看看 xlsread1 谢谢!!
-
这里打印进度最简单的方法:在循环中,只需删除
textFileName = ['CR' num2str(k+1642) '.xlsx']之后的分号,或者您可以只打印k。