MATLAB - Как создать определенное количество комбинаций матрицы? - PullRequest
0 голосов
/ 22 сентября 2018

Я создал случайную матрицу 10х10 и исправил ее.Теперь я хочу создать, скажем, 1 миллион различных комбинаций этой матрицы (не все из них).Я подчеркнул слово «разные», потому что исходная случайная матрица состоит только из 4 разных элементов.Есть ли способ сделать это в MATLAB?

1 Ответ

0 голосов
/ 22 сентября 2018

Я не могу вспомнить из моего курса по коммутативной алгебре, есть ли более элегантный способ сделать это.Тем не менее, вот метод грубой силы:

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
...