/// <summary> /// Creates a new object that is a copy of the current instance. /// </summary> /// /// <returns> /// A new object that is a copy of this instance. /// </returns> /// public override object Clone() { double[,] A = (double[, ])LogTransitions.Clone(); double[,] B = (double[, ])Emissions.Clone(); double[] pi = (double[])LogInitial.Clone(); return(new HiddenMarkovModel(A, B, pi, logarithm: true)); }
public HiddenMarkovModel <GeneralDiscreteDistribution> ToContinuousModel() { var transitions = (double[, ])LogTransitions.Clone(); var probabilities = (double[])LogInitial.Clone(); var emissions = new GeneralDiscreteDistribution[States]; for (int i = 0; i < emissions.Length; i++) { emissions[i] = new GeneralDiscreteDistribution(Accord.Math.Matrix.GetRow(Emissions, i)); } return(new HiddenMarkovModel <GeneralDiscreteDistribution>(transitions, emissions, probabilities)); }