位置 1 处的索引超出数组边界(不能超出 49)。 出错 crossover (line 12) newPop(i,:) = [pop(i1,1:c), pop(i2,c:end)]; 出错 Untitled (line 51) pop = crossover(pop, nPop, pCross);
时间: 2023-06-14 10:02:47 浏览: 196
关于C#索引超出了数组界限的问题??
4星 · 用户满意度95%
这个错误提示表明,你在对一个数组进行访问时越过了它的边界。错误发生在第 12 行的交叉函数 `crossover` 中,第 51 行调用了这个函数。
具体来说,`newPop(i,:)` 这个语句中的 `i` 取值超出了 `pop` 数组的范围(大于等于 `size(pop,1)`)。这可能是因为在代码中对 `pop` 数组进行了修改,导致其大小发生了变化,超出了原来的范围。
你可以检查一下在 `crossover` 函数中对 `pop` 数组的修改是否正确,以及在调用 `crossover` 函数之前是否正确初始化了 `pop` 数组。如果还有问题,建议贴出相关代码以便更好地帮助你解决问题。
阅读全文