OK.
Se ho capito, la cosa più semplice che puoi fare è:
[*] creare una matrice con tutte le combinazioni con tre cicli for annidati (dal momento che hai a che fare un numeri di combinazioni non eccessivamente grandi non ci dovrebbero essere problemi di "prestazioni"
[*] usare la funzione "randperm" per "mischiare" le combinazioni
[*] selezionare il numero di casi che vuoi analizzare estraendo, dalla matrice il corrispondente numero di righe
[*] stando al codice che hai pubblicato, puoi usare gli indici estratti come indici per accedere ai vettori "m" e I0" per creare la matrice "M".
Volendo creare un codice più completo, potresti creare la matrice con gli indici la prima volta che esegui il codice e salvarla in un file ".mat"
Ogni volta che utilizzi il codice, puoi caricare la matrice, estrarre gli indici che ti servono, cancellare le righe corrispondenti e salvare la matrice.
In questo modo, con lanci successivi del codice puoi analizzare tutti i casi.
Di seguito, una possibile implementazione (senza la parte di salvataggio e caricamento della matrice - non ho molto tempo in questo momento, mi dispiace).
% Define the cases
n_cases=6
cases=1:n_cases;
% Select the numner of cases to be analysed
sel_cases=13
% Initialize the matrix with the index combinations
idx_matrix=[]
% Create the matrix with the index combinations
for i=1:n_cases
for j=1:n_cases
for k=1:n_cases
idx_matrix=[idx_matrix;i j k];
end
end
end
% Shuffle the indices
idx_matrix=idx_matrix(randperm(size(idx_matrix,1)),:)
% Extract the set of cases to be analyzed
cases_idx=idx_matrix(1:sel_cases,:)
for i=1:sel_cases
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% INSERISCI QUI IL TUO CODICE PER L'ANALISI
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
return