我有一个 <1 x 29> 单元阵列。每个单元格内都有一个 <310x2000 double> 矩阵。由于内存问题,我想将这些矩阵分解成更小的“块”(假设每个大约 5 x 2000),从第 4 行开始,到第 309 行结束。
因此,我的数据以data{i}(j,:)
wherei
表示单元格编号的格式存储,并j
表示所需的行。
我创建了一个矩阵(我们称之为 A),其中每一列都为我提供了每个“块”中我想要的行的值
4 10 15 20 25
5 11 16 21 26
6 12 17 22 27 ...
7 13 18 23 28
8 14 19 24 29
例如,矩阵 1 将包括第 4、5、6、7 和 8 行。
nCells 是指我拥有的单元格数 (29) & nCol 是指矩阵 A 中的列数。因此:
for i = 1:nCells
for k = 1:nCol
for j = A(:,k)
B{i,k}(j,:) = [data{i}(j,:)];
end
end
end
不幸的是,这给了我以下错误:
???错误使用 ==> horzcat CAT 参数尺寸不一致。
如果有人能告诉我问题是什么,或者/特别是如果有更好的方法来解决这个问题,我真的很感激,因为我遇到了内存问题:
???记不清。键入 HELP MEMORY 作为您的选项。