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

Matlab中计算两个表格列的RMSE提示无效数组索引错误怎么办

Matlab RMSE计算报错原因及修正方法

直接报错原因

你写的(y)(:)属于非法语法,Matlab不支持这种连续括号的索引写法,这是触发无效数组索引错误的直接诱因。
此外你对table类型的操作方式也存在问题:直接对table变量使用x(:)拿到的依然是table类型的子表,不是数值数组,哪怕语法修正后也无法直接做数值运算。

逻辑问题补充

你当前代码里固定除以1000的写法不符合RMSE的计算规则,RMSE需要用残差平方和除以实际样本总长度再开根号,只有你数据长度刚好为1000时该写法才成立,通用场景下会得到错误结果。

修正后代码

如果两个表格都只有一列数据,可直接提取第一列的数值做运算:

% 提取表格中第一列的数值
x_num = x{:,1};
y_num = y{:,1};
% 计算RMSE,用mean自动处理除以样本数的逻辑
rmse = sqrt(mean((x_num - y_num).^2));

如果表格的列有明确的变量名,也可以用变量名提取更稳妥,比如列名叫data的话就写x.data即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:57:04