【发布时间】:2018-10-25 16:39:12
【问题描述】:
我正在处理这些 h5 文件,这些文件具有数以万计的数据集,其中包含数值向量且大小相同。我的目标是读取数据集并从这些向量中创建一个大矩阵。数据集的命名从“0”到“xxxxx”(一些很大的数字)我能够读取它们并获取矩阵,但这样做需要很长时间。我想知道你是否可以看看我的代码并提出一种让它运行得更快的方法 这是我现在的做法
t =[];
for i = 0:40400 % there are 40401 datasets in this particular file
j = int2str(i);
p = '/mesh/'; % The parent group
s = strcat(p,j); % to create the full path of a dataset e.g. '/mesh/0'
r = h5read('temp.h5',s); % the file name is temp and s has the dataset path
t = [t;r];
end
在这种特殊情况下,有 40401 个数据集,每个数据集都有 80802x1 个数值向量。因此最终我想创建 80802x40401 矩阵。这段代码需要一天的时间才能完成。我认为它很慢的原因之一是因为在每次迭代中,matlab 都会访问 h5 文件。如果你们中的一些人有一些加快代码速度的技巧,我将不胜感激
【问题讨论】:
-
我不明白的事情:如果你这样做
t = [t;r];不会将向量r堆叠在另一个之上以获得一个大向量,而不是拥有一个大向量矩阵和其他人一起?
标签: matlab