E' sufficiente creare un ciclo "for" all'interno del quale inserire una variante (semplificata) del metodo proposto nella risposta precedente.
Di seguito una possibile implementazione.
Dal momento che non hai specificato come definire il numero di "1" da inserire per ogni giorno, nell'esempio ho usato dei numeri random; nella pratica dovrai sostituire questa parte con il metodo che usi per definirli.
In pratica, dato il numero di "1" da inserire, ad ogni iterazione del ciclo for:
[*] si crea un vettore di "0" di lunghezza pari al numero di elementi della matrice "giornaliera"
[*] si settano a "1" i primi "n" elementi del vettore, dove "n" è il numero di "1" del giorno
[*] si usa la funzione "randperm" per randomizzare la posizione degli "1" (fai riferimento alla documentazione on-line della funzione per i dettagli)
[*] si usa la funzione "reshape" per trasformare il vettore nella matrice "giornaliera"
[*] si crea la matrice di output aggiungendo la matrice "giornaliera"
Nell'esempio, per semplicità nella visualizzazione ho considerato 3 giorni e, per ogni giorno un numero di "1" compreso tra 1 e 10 scelto in modo random (questa è la parte che devi modificare inserendo il tuo metodo per la loro definizione)
Sempre per verificare il funzionamento del codice, nella matrice di output viene inserita una riga di "Inf" per identificare le matrici "giornaliere", per creare la matrice finale basta commentare / attivare le istruzioni come indicato nel codice.
I commenti nel codice dovrebbero chiarire i vari passaggi.
%
% Define the number of days
%
n_days=3
%
% Define the number of "1" per day
%
n_samples=10
%
% Define the number of columns
%
n_col=6
%
% Define the number of "1" per day
% TO BE REPLACED BY THE REAL METHOD TO DEFINE THE "1"
%
n_ones=randi([1 n_samples],n_days,1)
%
% Initialize the output matrix
%
out_matrix=[];
%
% Loop over the days
%
for i_day=1:n_days
%
% Create a temporary array of "0"
% The length of the array is equal to the number of elements of the current day matrix
%
tmp_matrix=zeros(1,n_samples*n_col);
%
% Set to "1" the first "n_ones" elements of the array (n_ones being the number of "1" for the current day
%
tmp_matrix(1:n_ones(i_day))=NaN;
%
% Permute the elements of the array to "randomize" the "1"
%
tmp_matrix=tmp_matrix(randperm(n_samples*n_col));
%
% Reshape the array into the a matrix
%
tmp_matrix=reshape(tmp_matrix,n_samples,n_col);
%
% Add the current day matrix to the output matrix
% A row of "Inf" values is inserted to identify the daily sections
% UN-COMMENT THE FOLLOWING LINE AND COMMENT THE NEXT ONE TO CREATE THE OUTPUT MATRIX
% out_matrix=[out_matrix;tmp_matrix];
out_matrix=[out_matrix;inf(1,6);tmp_matrix];
end
%
% Print the output matrix
%
out_matrix