matlab定义字符数组,如何在matlab中定义空字符数组?你想染⾊体是字符数组(当所有⾏具有相同的⼤⼩)或电池阵列(第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
matlab数组赋值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是每个ith⾏相同。那么你可以这样做:
c = dec2bin(parameters,NO_BITS_PARAMETER);
chromosomes = reshape(c',1,[]);
chromosomes = repmat(chromosomes,POPULATION_SIZE,1);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论