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

R运行马尔可夫模型代码报non-conformable arguments错误如何解决

报错原因及修复方案

核心错误:转移矩阵维度不匹配

你定义的状态初始向量Init长度为6,对应6个模拟状态,因此转移矩阵Pmat必须是6行6列的方阵才能符合矩阵乘法规则。
你当前通过read.table读取转移矩阵时,文本排版错误,将多行的概率值合并到了同一行,加上fill=TRUE参数自动补全空缺值,最终生成的P.RILUneg、P.RILUpos均为6行8列的矩阵,行向量istate和8列的矩阵做乘法时维度无法匹配,触发non-conformable arguments报错。

其他需修正的小问题

调用MToll函数时传入的toll参数对应TC.med长度为5,刚好匹配netshifts[-1]的长度(移除了第一个状态的转移值),该部分无问题,但需注意转移矩阵修正后逻辑才会正常运行。

修复代码

仅需要调整转移矩阵的读取格式,将每行6个概率值单独拆分即可:

# 修正后的转移矩阵读取
P.RILUneg<-read.table(text="
6.8604466e-01 0.27237339416 0.0392288844 0.0020896625 0.00011414761 0.00014925021 
2.6080360e-02 0.74183221490 0.2130311396 0.0167613306 0.00121619371 0.00107876162 
7.9577302e-04 0.04513125922 0.8115775903 0.1232709064 0.01337414561 0.00585032537 
2.7391412e-05 0.00229455178 0.0796554694 0.7391659905 0.16375225528 0.01510434163
8.9680288e-07 0.00009978931 0.0051797995 0.0981474867 0.79583386882 0.10073815882
0.0000000e+00 0.00000000000 0.0000000000 0.0000000000 0.00000000000 1.00000000000",header = FALSE ) 

P.RILUpos<-read.table(text="
6.9449942e-01 0.27189897910 0.0314651341 0.0019380647 8.9161464e-05 0.00010923903 
2.6903100e-02 0.77862279416 0.1766404706 0.0160845681 9.8349868e-04 0.00076556815 
8.0656346e-04 0.04576193898 0.7942333863 0.1423245490 1.3101929e-02 0.00377163306 
2.7854076e-05 0.00233633511 0.0797978780 0.7588375567 1.4166520e-01 0.01733517825
9.1518056e-07 0.00010202547 0.0052463334 0.1011747832 8.2156998e-01 0.07190595839
0.0000000e+00 0.00000000000 0.0000000000 0.0000000000 0.0000000e+00 1.00000000000",header = FALSE ) 

P.RILUneg<-as.matrix(P.RILUneg)
P.RILUpos<-as.matrix(P.RILUpos)

修正后执行原调用代码即可正常运行,不存在遗漏的配置项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:15:05