我想把所有矩阵的和存储在一个单元数组中现在我做这个
StackSummImage = zeros(size(imageList{1}));
for k = 1:stackSize
StackSummImage = StackSummImage + imageList{k};
end
但如果可能的话,我宁愿把它写成一行。
最佳答案
如果N个图像中的每一个都是K x K,则可以使用cat
将所有图像连接到kxkxn数组中,然后沿三维求和:
>> imageList = {[1 2; 3 4], [5 6; 7 8], [9 10; 11 12]};
>> stackSummImage = sum(cat(3,imageList{:}),3)
ans =
15 18
21 24
编辑:您在注释中提到,由于内存限制,无法创建单个数组下面是我第一次分配1500x1500x1500双精度数组(大约需要30gb)并解除分配它时的内存使用配置文件,然后分配1500个数组的单元格数组,每个数组都是1500x1500双精度数组如您所见,这两种情况下的总内存使用量是相同的。