MATLAB如何生成每个元素依赖前一元素的逻辑斯蒂函数序列向量
MATLAB逻辑斯蒂递推序列存储实现
原有代码中x为单个标量,每次迭代都会直接覆盖x的取值,仅能保留最后一次计算结果,无法存储历史值,调整后可直接运行的代码如下:
% 配置参数 total_items = 50; % 生成序列的总项数,按需可改为100 r = 4; % 预分配存储向量,提升运行效率 logi_seq = zeros(1, total_items); logi_seq(1) = 0.200; % 初始值存入向量第一个位置 % 递推计算 for n = 1:total_items-1 logi_seq(n+1) = r * logi_seq(n) * (1 - logi_seq(n)); end
关键调整说明
- 提前用
zeros预分配和目标序列长度一致的空向量,避免循环中动态扩容的性能损耗,同时为所有历史计算结果预留存储位置 - 每次迭代的新值直接赋值到向量的对应索引位,不会覆盖之前的计算结果
- 删除冗余的
n = n + 1语句,MATLAB的for循环会自动遍历设定的迭代序列,无需手动修改迭代变量
运行完成后,logi_seq变量就是存储了所有逻辑斯蒂函数值的向量,可通过索引直接调取对应项,比如要调取第3项的数值直接执行logi_seq(3)即可。
内容的提问来源于stack exchange,提问作者VickyG
相关产品推荐
相关产品推荐

