⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shmm_viterbi_test.c

📁 一个通用的隐性马尔可夫C代码库 开发环境:C语言 简要说明:这是一个通用的隐性马尔可夫C代码库
💻 C
字号:
/*******************************************************************************  author       : Bernd Wichern  filename     : /zpr/bspk/src/hmm/ghmm/tests/shmm_viterbi_test.c  created      : TIME: 12:52:37     DATE: Tue 05. June 2001  last-modified: TIME: 15:33:06     DATE: Tue 05. June 2001  $Id: shmm_viterbi_test.c,v 1.2 2002/02/22 23:48:44 achim Exp $*******************************************************************************/#include <string.h>#include <ghmm/smodel.h>#include <ghmm/sequence.h>#include <ghmm/sviterbi.h>#include <ghmm/mes.h>static int viterbi_test(char* argv[]);/*============================================================================*/static int viterbi_test(char* argv[]) {#define CUR_PROC "viterbi_test"  FILE *outfile = NULL;  sequence_d_t **sqd = NULL;  smodel** smo = NULL;  char outfilename[256];  int smo_number, sqd_number, *state_seq = NULL, model, t, cnt = 0;  long i, j;  double log_p;  /* read array of models */  smo = smodel_read(argv[1], &smo_number);  if (!(smo)) {mes_proc(); goto STOP;}    /* read sequences */  sqd = sequence_d_read(argv[2], &sqd_number);  if (!sqd) {mes_proc(); goto STOP;}    strcpy(outfilename, argv[3]);  if(!(outfile = mes_fopen(outfilename, "wt"))) {mes_proc(); goto STOP;}  /* calculate viterbi path for every possible sequence-model combination */  for (model = 0; model < smo_number; model++) {    for (i = 0;  i < sqd_number; i++) {      for (j = 0; j < sqd[i]->seq_number; j++) {	cnt++;	state_seq = sviterbi(smo[model], sqd[i]->seq[j], sqd[i]->seq_len[j],			     &log_p);	if (state_seq == NULL) {mes_proc(); goto STOP;}	fprintf(outfile, "%d %ld (Seq.ID %d): logp %.4f\t", model, i, 		(int) sqd[i]->seq_id[j], log_p);	for (t = 0; t < sqd[i]->seq_len[j]; t++)	  fprintf(outfile, "%2d ", state_seq[t]);	fprintf(outfile, "\n");	m_free(state_seq);	if (!cnt%100) printf("%d\n", cnt);      }    }  }STOP:  return -1;# undef CUR_PROC}/*============================================================================*/int main(int argc, char* argv[]) {  if (argc != 4) {    printf("Usage: shmm_viterbi_test <Model File> <Sequence File> <Output File> \n");    exit(1);  }  return viterbi_test(argv);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -