【发布时间】:2015-02-17 00:19:01
【问题描述】:
我有一个名为simulate_ant() 的函数,它返回模拟蚂蚁在 32x32 网格上的适应度值,它以网格的文本文件和由 30 位数字组成的字符串作为参数,这些数字组成了一个有限状态机, 10 个状态,每个状态用 3 位数字表示。
我创建了一个由 30 位字符串组成的数组,我想迭代这 10 次并用函数的结果填充一个单独的数组,为此我编写了以下代码:
% our first generation of ants
first_gen = ['110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100';'110202132224154246176368198100'];
first_gen_fitness = [0,0,0,0,0,0,0,0,0,0];
% get fitnesses of first generation of ants
for i = 1:10
first_gen_fitness(i) = simulate_ant('muir_world.txt', first_gen(i));
end
我期望 first_gen_fitness 填充 10 个 47,如下所示:first_gen_fitness = [47, 47, 47, 47, 47, 47, 47, 47, 47, 47]; 但它只是出现 10 个 0。
谁能告诉我哪里出错了?
【问题讨论】:
-
simulate_ant('muir_world.txt', first_gen(1))返回什么?手动运行代码,一次一步(不使用 for 循环)找出问题所在。 -
如果我运行
simulate_ant('muir_world.txt', 1);,它会返回相同的错误,这实际上告诉我我没有输入正确的第二个参数。但是,如果我运行simulate_ant('muir_world.txt', '110202132224154246176368198100');,我会得到 47 的正确答案,但这两者不代表完全相同吗?