String MATLAB基本马尔可夫链的实现

String MATLAB基本马尔可夫链的实现,string,matlab,matrix,random-sample,markov-chains,String,Matlab,Matrix,Random Sample,Markov Chains,我正在编写代码模拟一个非常简单的马尔可夫链,从两个转移矩阵中的任何一个生成10000个6-核苷酸序列(即,如果前一个核苷酸是a,那么使用这组概率生成下一个核苷酸,依此类推)。我还得到了通过从上述矩阵中获取相应概率得到的运行产品,但这些产品也不能正确传播 我知道MATLAB可能不像其他语言那样处理字符串/字符,所以我不完全确定我的代码是怎么回事。基本上,我是在取样,但似乎分配不正确。我的代码如下。诚然,这是不雅的,但它应该起作用……但事实并非如此。考虑到这些转移矩阵,有没有更简单的方法?(显然,到

我正在编写代码模拟一个非常简单的马尔可夫链,从两个转移矩阵中的任何一个生成10000个6-核苷酸序列(即,如果前一个核苷酸是a,那么使用这组概率生成下一个核苷酸,依此类推)。我还得到了通过从上述矩阵中获取相应概率得到的运行产品,但这些产品也不能正确传播

我知道MATLAB可能不像其他语言那样处理字符串/字符,所以我不完全确定我的代码是怎么回事。基本上,我是在取样,但似乎分配不正确。我的代码如下。诚然,这是不雅的,但它应该起作用……但事实并非如此。考虑到这些转移矩阵,有没有更简单的方法?(显然,到目前为止,该代码只对第一个矩阵(M1)有效。)


啊,我修好了。为了绕过“ACGT”字符串创建的位指定,我刚刚创建了占位符:

%    A C G T
N = [1 2 3 4]
在那之后,索引修复是微不足道的


不过,我仍然对如何生成“真实”序列感兴趣,就像我最初尝试的那样,而不仅仅是1、2、3和4的组合字符串。

啊,我修复了它。为了绕过“ACGT”字符串创建的位指定,我刚刚创建了占位符:

%    A C G T
N = [1 2 3 4]
在那之后,索引修复是微不足道的

我仍然对如何生成“真实”序列感兴趣,尽管我最初尝试这样做,而不仅仅是1、2、3和4的组合字符串。

您可以使用数字1-4的序列(行向量)作为字符串
N
的索引,这应该可以将其转换为字符串ACGT。另一个技巧:不要使用
if strcmp(sampletype…
使用
switch sampletype…
。可以使用数字1-4的序列(行向量)作为字符串
N
的索引,这应该将其转换为字符串ACGT。另一个技巧:不要使用
if strcmp(样本类型…
使用
开关样本类型…
)。