Хотите ли вы, чтобы хромосомы были символьным массивом (если все строки имеют одинаковый размер) или массивом ячеек (с переменным размером i-х элементов)?
В первом случае вы определяете переменную как:
chromosomes = char(zeros(POPULATION_SIZE,NO_PARAMETERS*NO_BITS_PATAMETER));
или
chromosomes = repmat(' ',POPULATION_SIZE,NO_PARAMETERS*NO_BITS_PATAMETER);
Затем в цикле for:
chromosomes(i,(j-1)*NO_BITS_PATAMETER+1:j*NO_BITS_PATAMETER) = c;
В случае массива ячеек:
chromosomes = cell(POPULATION_SIZE, NO_PARAMETERS); % each paramater in separate cell
for i=1:POPULATION_SIZE
for j=1:NO_PARAMETERS
c=dec2bin(parameters(j),NO_BITS_PARAMETER);
chromosomes{i,j} = c;
end
end
или
chromosomes = cell(POPULATION_SIZE,1); % all parameters in a single cell per i
for i=1:POPULATION_SIZE
for j=1:NO_PARAMETERS
c=dec2bin(parameters(j),NO_BITS_PARAMETER);
chromosomes{i} = [chromosomes{i} c];
end
end
РЕДАКТИРОВАТЬ :
На самом деле вы можете применить DEC2BIN ко всему массиву чисел сразу.Также похоже, что переменные parameters
одинаковы для каждой i-й строки.Тогда вы можете сделать:
c = dec2bin(parameters,NO_BITS_PARAMETER);
chromosomes = reshape(c',1,[]);
chromosomes = repmat(chromosomes,POPULATION_SIZE,1);