关于Matlab6.5的一个Bug(0分)

  • 主题发起人 主题发起人 MrMengyi
  • 开始时间 开始时间
M

MrMengyi

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在做数据处理
Matlab提供了.m文件转换为.c和.cpp的工具
但我在多元线型回归函数regress时发现计算不正确
原因是文件[MATLAB6p5]/toolbox/stats/regress.m
第125行sigmai(ok) = sqrt(max(0,(nu*s2/(nu-1)) - (r(ok) .^2 ./ denom(ok))));
中max函数转换后的错误
max(0,[1,-1,2])应该是[1,0,2]
但转化为c后,结果是[1]
我的解决方法是改变.m文件,将0变为124行右边的zeros(length(denom),1)
于是125行成为这样:
sigmai(ok) = sqrt(max(zeros(length(denom),1),(nu*s2/(nu-1)) - (r(ok) .^2 ./ denom(ok))));
希望有用
 
这么小的问题及都能看得出来 厉害
 
接受答案了.
 
后退
顶部