我需要你的洞察力。我想创建 20 个不同的零矩阵,如下所示:
metrics_1 = zeros(10, 19);
metrics_2 = zeros(10, 19);
metrics_3 = zeros(10, 19);
metrics_4 = zeros(10, 19);
metrics_5 = zeros(10, 19);
metrics_6 = zeros(10, 19);
metrics_7 = zeros(10, 19);
metrics_8 = zeros(10, 19);
metrics_9 = zeros(10, 19);
metrics_10 = zeros(10, 19);
metrics_11 = zeros(10, 19);
metrics_12 = zeros(10, 19);
metrics_13 = zeros(10, 19);
metrics_14 = zeros(10, 19);
metrics_15 = zeros(10, 19);
metrics_16 = zeros(10, 19);
metrics_17 = zeros(10, 19);
metrics_18 = zeros(10, 19);
metrics_19 = zeros(10, 19);
metrics_20 = zeros(10, 19);
如何使用 for 循环更快地执行此操作?
非常感谢
我猜你的意思是“更容易”?
无需创建 20 大小为 10x19 的二维数组,您只需创建一个大小为 10x19x20
的 3d 数组metrics = zeros(10,19,20);
如果你不想按照 PierU 的建议做 3D 矩阵 ,你可以制作一个元胞数组。而不是
metrics_8
,你会做metrics{8}
。您可以按如下方式创建它:
metrics = cell(20,1);
for i = 1:numel(metrics)
metrics{i} = zeros(10, 19);
end
在这种情况下,每个矩阵可以有不同的大小。如果它们的大小始终相同,则 3D 数组方法的内存效率更高。
用同一数组的副本填充元胞数组的所有元素的快捷方式是:
metrics = cell(20,1);
[metrics{:}] = deal(zeros(10, 19));