You need to enable JavaScript to run this app. Matlab求10个数最大最小值程序报索引超出数组错误如何修正
优惠活动
大模型
产品
解决方案
定价
更多

Matlab求10个数最大最小值程序报索引超出数组错误如何修正

Matlab求10个输入值最大最小值报错修复方案

报错根本原因

  • 笔误触发超界:代码第11行你写的是array(i+i),不是预期的array(i+1),当i≥6时i+i的计算结果≥12,超出了数组的10个元素长度,直接触发报错
  • 循环逻辑冗余:第二层循环写了i从1到10,虽然加了i==10就break的判断,但本质可以直接把循环范围设为1:9,避免多余的边界判断
  • 求最大最小的逻辑本身错误:现有逻辑仅比较相邻两个元素的大小,无法得到整个数组的全局最大最小值,同时还存在初始值设为0的问题,如果输入全为负数结果会完全错误

修复后可直接运行的代码

% 预分配数组空间
array = zeros(1,10);
% 收集10个用户输入
for i = 1:10
    array(i) = input("Enter your numbers: ");
    fprintf("Numbers are array(%d)=%d\n",i,array(i));
end
% 初始化最大最小值为数组第一个元素,避免初始值偏差
max_val = array(1);
min_val = array(1);
% 遍历剩余元素更新最大最小值
for i = 2:10
    if array(i) > max_val
        max_val = array(i);
    end
    if array(i) < min_val
        min_val = array(i);
    end
end
% 输出最终结果
fprintf("输入数组的最大值为:%d,最小值为:%d\n", max_val, min_val);

额外优化说明

  • 不要用max、min作为变量名,二者是Matlab内置的求最大最小值的原生函数,重名会导致后续无法调用内置功能
  • 如果你不需要自己实现遍历逻辑,直接调用内置函数即可快速得到结果:
    • 求最大值:max_val = max(array)
    • 求最小值:min_val = min(array)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 18:33:03