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

Matlab拼接数组维度不一致报错 两数组大小相同原因排查

最小二乘回归拼接维度报错排查与修复

报错诱因

报错触发点是构造设计矩阵H的代码行,核心问题是向量方向不匹配,而非元素总数不一致:

  • 代码中通过冒号语法mu-6*sigma:0.5:mu+6*sigma生成的bin(即后续赋值的x_)是行向量,尺寸为1×M(M为分箱总数)
  • 代码中ones(length(y_),1)生成的是列向量,尺寸为M×1
  • 横向拼接数组要求两个数组行数完全一致,M×1的列向量和1×M的行向量行数分别为M和1,无法直接拼接,因此触发报错。你之前核查尺寸只确认了二者元素总数相同,没有检查向量的行列方向,因此没定位到问题。

修复方法

只需要统一两个拼接项的维度方向即可,最稳妥的修改方式是把x_强制转为列向量,修改H的构造代码:

H = [ones(length(y_),1), x_(:)];

其中x_(:)的写法会无视x_原本是行/列向量,强制将其转换为列向量,从根源避免维度方向不匹配的问题。
如果不想改H的构造逻辑,也可以在最开始生成分箱序列时就指定为列向量:

bin = (mu-6*sigma:0.5:mu+6*sigma)';

额外提示

你当前的代码是用线性模型做最小二乘拟合,但正态分布对应的直方图是钟形曲线,线性拟合只能得到一条直线,无法匹配正态分布形态,自然也没法得到和生成参数一致的mu、sigma。如果要验证分布参数,需要将正态分布取对数转换为线性形式再做最小二乘,或者直接使用非线性最小二乘方法拟合,这部分不属于当前报错的范畴,可后续调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:09:29