MATLAB - 将值重新填充到单元格数组中,其中各个单元格元素的大小不相等

MATLAB - repmat values into cell array where individual cell elements have unequal size

我正在尝试将数组 (values) 中的值重复到单元格数组,其中各个元素的大小不相等(由 array_height 和 array_length 指定)。

我希望将其应用于更大的数据集(包含 ~100 x ~100 个值),我当前的解决方案是为每个值编写一行代码(下面的代码示例)。当然有更好的方法...请有人提供替代解决方案吗?

C = cell(3,2);

values = rand(3,2);
array_height = randi(10,3,2);
array_length = randi(10,3,2);

C{1,1} = repmat((values(1,1)),[array_height(1,1),array_length(1,1)]);
C{2,1} = repmat((values(2,1)),[array_height(2,1),array_length(2,1)]);
C{3,1} = repmat((values(3,1)),[array_height(3,1),array_length(3,1)]);
C{1,2} = repmat((values(1,2)),[array_height(1,2),array_length(1,2)]);
C{2,2} = repmat((values(2,2)),[array_height(2,2),array_length(2,2)]);
C{3,2} = repmat((values(3,2)),[array_height(3,2),array_length(3,2)]);

如果您在 for 循环中执行此操作,它可能看起来像这样:

for i = 1:size(C,1)
    for j = 1:size(C,2)
         C{i,j} = repmat(values(i,j),[array_height(i,j),array_length(i,j)]);
    end
end

但是,如果您尝试生成它或将其用于更大的数据集,则此代码片段可能需要很长时间!我怀疑无论你的总体 objective 是什么,都可以通过 matlab 对矩阵和向量的许多优化来更好地服务,但没有更多信息,我无能为力。