paths_travelled(ants_travelled) = sub2ind([num_ants, n], (1:num_ants)', ants_pos); ants_travelled = sub2ind([num_ants, n], (1:num_ants)', next_pos); paths_travelled(ants_travelled) = sub2ind([num_ants, n], (1:num_ants)', ants_pos);代码报错
时间: 2023-06-12 20:08:10 浏览: 206
这个错误可能是因为变量 `ants_pos` 和 `next_pos` 的维度不一致导致的。请确保它们都是 $num\_ants \times 1$ 的列向量。
此外,还需要确保 `ants_pos` 和 `next_pos` 中的元素在合理的范围内,即 $1 \leq ants\_pos(i) \leq n$ 和 $1 \leq next\_pos(i) \leq n$,其中 $i$ 表示向量的第 $i$ 个元素。这是因为 `sub2ind` 函数要求输入的 subscripts (即下标)必须是正整数。
最后,也需要确保 `paths_travelled` 变量已经被初始化为一个 $num\_ants \times n$ 的矩阵,且所有元素都是初始值 0。否则也会导致代码报错。
阅读全文