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

MATLAB嵌套循环疑问:如何正确遍历两组变量并存储结果

问题分析与修正

你的嵌套循环写法不正确,核心问题出在索引计算i2*i上,会导致大量索引重复覆盖,最终出现多数位置为0的异常结果:

  • 当i=1时,i2从1到6,索引是1、2、3、4、5、6,这部分能正常赋值;
  • 当i=2时,i2从1到6,索引是2、4、6、8、10、12,其中2、4、6会覆盖i=1时的对应位置;
  • 当i=3时,i2从1到6,索引是3、6、9、12、15、18,其中3、6、12又会覆盖之前的结果;
  • 而像7、11、13、14、16、17这些索引从未被赋值,所以保持初始的0值。

正确写法

既然你需要6×3的矩阵(每行对应一个y元素,每列对应一个x元素),直接用二维索引即可,同时建议提前初始化矩阵提升效率:

% 提前初始化结果矩阵,避免动态扩展
result = zeros(length(y), length(x));
for i = 1:length(x)
    for i2 = 1:length(y)
        % 二维索引:行对应y的索引i2,列对应x的索引i
        result(i2, i) = func(x(i), y(i2));
    end
end

这样循环完成后,result的第1列就是x(1)与所有y配对的结果,第2列对应x(2),第3列对应x(3),完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:52:07