用matlab实现这个程序,它提示错误,说未定义obj,这个该怎么办

lucky893 lucky893 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
function BWFit(obj,obsVec)

L = length(obsVec);
f = @(x)x./sum(x,2);
tmpTransProb = f(rand(obj.nStates));
tmpEmitProb = f(rand(obj.nStates,obj.nObserve));
tmpInitProb = f(rand(1,obj.nStates));
obj.isCache = 1;

while obj.getModelDiff(tmpTransProb,tmpEmitProb,tmpInitProb) > HMMModel.ITER_TOLERENCE %判断是否收敛
obj.transProb = tmpTransProb;
obj.emitProb = tmpEmitProb;
obj.initProb = tmpInitProb;

gammaCache = zeros(obj.nStates,L);
kasaiCache = zeros(obj.nStates,obj.nStates,L-1);

obj.refreshCache(obsVec);
for t = 1:L
for s = 1:obj.nStates
gammaCache(s,t) = obj.calGammaProb(obsVec,t,s);
if t < L
for m = 1:obj.nStates
kasaiCache(s,m,t) = obj.calKasaiProb(obsVec,t,s,m);
end
end
end
end
[tmpTransProb,tmpEmitProb,tmpInitProb] = obj.calNewModelParam(obsVec,gammaCache,kasaiCache);
end

obj.transProb = tmpTransProb;
obj.emitProb = tmpEmitProb;
obj.initProb = tmpInitProb;
obj.isCache = 0;
obj.refreshCache(obsVec);
end
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
lucky893
Informatica 248 成员 377 内容