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
我创建了一个随机的 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