You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中如何循环10000次函数并正确记录三类输出

解决MATLAB循环中保存多次函数输出的问题

你的代码问题有两个:

  • 每次循环都重新定义Sl、Ml、Ll,之前循环产生的数据会被直接覆盖,最终只保留最后一次循环的结果。
  • 错误地将循环变量trials拼接到结果数组里,应该存储的是每次函数返回的S、M、L值。

这里提供两种可行的修改方案:

方案一:新手友好的动态扩展方式

先初始化空数组,每次循环将当前的S、M、L追加到数组末尾:

Sl = [];
Ml = [];
Ll = [];

for trials = 1:10000
    [S,M,L] = crayonBreak();
    Sl = [Sl; S];
    Ml = [Ml; M];
    Ll = [Ll; L];
end

方案二:高效的预先分配内存方式

MATLAB中动态扩展数组会频繁重新分配内存,对于10000次循环,预先分配好数组内存能大幅提升运行效率(假设S、M、L都是标量,若为向量需调整数组维度):

% 预先分配10000行1列的数组
Sl = zeros(10000, 1);
Ml = zeros(10000, 1);
Ll = zeros(10000, 1);

for trials = 1:10000
    [S,M,L] = crayonBreak();
    Sl(trials) = S;
    Ml(trials) = M;
    Ll(trials) = L;
end

计算平均值

得到完整的结果数组后,直接用mean()函数计算平均值:

mean_S = mean(Sl);
mean_M = mean(Ml);
mean_L = mean(Ll);

内容的提问来源于stack exchange,提问作者NotShikamaru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 02:50:22