MATLAB——如何创建特定数量的矩阵组合?

MATLAB -- How to create a specific number of combinations of a matrix?

我创建了一个随机的 10x10 矩阵并修复了它。现在,我想创建 100 万个 不同的 这个矩阵的组合(不是全部)。我强调了 "different" 这个词,因为原始随机矩阵只包含 4 个不同的元素。有没有办法在 MATLAB 中做到这一点?

我想不起来我的交换代数课程是否有更优雅的方法。不过,这里是蛮力方法:

A = vec2mat(randsample(4,100,true),10);%I chose the four elements to be 1,2,3,4
n=1e+1%number of matrices to be generated
B = cell(1,n);%result cell
i=1;
while i<=n
    tmp=B;
    C=vec2mat(randsample(4,100,true),10)
    tmp{end+1}=C;
    if ~any(cell2mat(cellfun(@(x) isequal(x,A),tmp,'UniformOutput',false)))
        B{i}=C;
        i=i+1
    end
end