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

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值