r код для алгоритма с фиктивными данными: Я работаю, чтобы перевести это на MATLAB, но борясь с вычислениями, которые выполняются внутри цикла. Любая помощь будет оценена.Преобразуйте R-код в MATLAB
data <- c(-0.39, 0.12, 0.94, 1.67, 1.76, 2.44, 3.72,
4.28, 4.92, 5.53, 0.06, 0.48, 1.01, 1.68, 1.80,
3.25, 4.12, 4.60, 5.28, 6.22)
pi <- 0.546
sigmas1 <- 0.87
sigmas2 <- 0.77
mu1 <- numeric(0)
mu2 <- numeric(0)
r <- numeric(0)
R1 <- matrix (0 ,20 ,100)
mu1[1] <- 4.62
mu2[1] <- 1.06
for(j in 1:100){
for (i in 1:20){
r [i] <- pi * dnorm (data[i] , mu2[j], sigmas2^(1/2))/((1- pi)*dnorm(data[i],
mu1[j], sigmas1^(1/2))+ pi*dnorm(data[i], mu2[j], sigmas2^(1/2)))
R1[i, j] <- r[i]
}
r
mu1[j+1] <- sum((1-r)*data)/sum(1-r)
mu2[j+1] <- sum(r*data)/sum(r)
Muu1 <- mu1[j+1]
Muu2 <- mu2[j+1]
}
Muu1
Muu2
x11()
layout(matrix(c(1, 2)))
plot(mu1, type="l", main="", xlab="EM Iteration for the Fictitious Data")
plot(mu2, type="l", main="", xlab='EM Iteration for the Fictitious Data')
Если вам нужно просто запустить его внутри matlab, то это должно помочь вам http://neurochannels.blogspot.ru/2010/05/how-to-run-r-code-in-matlab.html – justanothercoder
О нет. Я должен перевести это в MATLAB и работать с реальными данными, поскольку в этом используются только фиктивные данные. –
Почему бы не просто изучить MATLAB или сохранить кодировку в R. Конечно, вы не думаете о том, чтобы вся работа по преобразованию для всего кода R выполнялась полезными людьми на SO? – patrik