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



我创建了一个随机的 10x10 矩阵并修复了它。现在,我想创建这个矩阵的100万个不同的组合(不是全部(。我强调了"不同"这个词,因为原始随机矩阵仅由 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

相关内容

  • 没有找到相关文章

最新更新