无法执行赋值,因为左侧的大小为 1×36,右侧的大小为 1×38。 出错 crossover (line 12) newPop(i,:) = [pop(i1,1:c), pop(i2,c-1:end)];如何修改
时间: 2023-06-11 07:08:40 浏览: 395
crossover-21.2.0-1.deb
问题出在新的个体 `newPop(i,:)` 的长度为 36,而 `[pop(i1,1:c), pop(i2,c-1:end)]` 的长度为 38。可以通过修改代码来解决这个问题。一种解决方案是将 `pop(i1,1:c)` 和 `pop(i2,c-1:end)` 中的两个元素删除,然后将剩余的元素合并成新的个体。修改的代码如下所示:
```
newPop(i,:) = [pop(i1,1:c-2), pop(i2,c+1:end)];
```
这样就可以正确地将两个个体交叉,生成新的个体了。
阅读全文