专栏
标签
使用lsqlin函数求解约束线性最小二乘问题时报错
技术分享
发布于 2025-10-16 19:56:14
查看 2过去229天

问题现象

使用lsqlin函数求解约束线性最小二乘问题时报错:

MethodError: no method matching zero(::Type{Any})
image.png

解决方法

将第三十行代码修改为:

Matrixc_part1=[float.(Data_t_part1_power7) float.(Data_t_part1_power6) float.(Data_t_part1_power5) float.(Data_t_part1_power4) float.(Data_t_part1_power3) float.(Data_t_part1_power2) float.(Data_t_part1_power1) ones(size(Data_t_part1,1),1)]

原因如下:

通过Error提示,zero(::Type{Any})和float(A::Matrix{Any}),还有Stacktrace[3]中的定位383可追溯错误到376行中H=C'*C,这里的C对应的就是输入Matrixc_part1,而从工作区中的值类型可以看出Matrixc_part1的类型为Matrix{Real},也就是C::Matrix{Real},而H=C'*C,那么H::Matrix{Any}, 所以在运行383行H = _a_matrix(float(H))时就出现了zero(::Type{Any})的错误了,所以解决问题的方法就是让输入Matrixc_part1的类型明确下来。

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境
科学计算

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天