如何将循环生成的数据存入数组?logistic map代码数组为空问题排查
数组为空的原因
你仅定义了MeGustaElCereal函数但没有执行调用操作,函数内部的append逻辑从未实际运行,因此打印的owo始终是空数组。
按mu值分开存储的实现
可以通过新增外层for循环遍历mu列表实现,你可以将owo改为嵌套数组,每个子数组对应单个mu值的所有迭代结果,修改后的完整代码如下:
mu_list = [2.8, 3.3, 3.5, 3.8, 3.99] N = 1000 init_x = 0.1 # owo为嵌套列表,结构为 owo[mu序号][迭代步长序号] owo = [] def MeGustaElCereal(init_x, mu, N): x = init_x current_res = [] for n in range(N): f = mu * x * (1.0 - x) x = f current_res.append(f) return current_res # 外层循环遍历所有mu值分别计算 for mu in mu_list: single_mu_res = MeGustaElCereal(init_x, mu, N) owo.append(single_mu_res) # 验证结果:打印第一个mu的前5个计算值 print(owo[0][:5])
逻辑说明
- 移除了函数内部对全局变量
owo的直接修改,改为返回单个mu的计算结果,逻辑更易维护 - 每次计算新的mu值时都会重置初始x为0.1,避免前一个mu的迭代结果干扰后续计算
- 后续绘制直方图时,可以直接通过
owo[i]取出第i个mu对应的所有迭代值单独绘图
内容的提问来源于stack exchange,提问作者Mashe
相关产品推荐
相关产品推荐

