2011-03-12 87 views
0

这里是代码R,我想运行它与MATLAB,如果可能优化。R代码到MATLAB

require(lattice) 
# 
set.seed(42) 

# parameters for distribution of class 1 
a <- 0 
b <- 1 
# parameters for distribution of class 2 
c <- 3 
d <- 1 

x <- c(sort(rnorm(1000,mean=a,sd=b)),sort(c(rnorm(1000,mean=c,sd=d)))) 
y <- c(dnorm(x[1:1000],mean=a,sd=b),dnorm(x[1001:2000],mean=c,sd=d)) 
labels <- factor(rep(c("class 1","class 2"),each=1000)) 

dat <- data.frame("x"=x,"density"=y,"groups"=labels) 
xyplot(density~x,data=dat,groups=labels,type="b",auto.key=T) 
+1

添加更多文档,了解不同部件的作用会有所帮助。有些人知道MatLab,但不知道R.有了这些评论,他们仍然应该能够提供帮助。 – earlNameless 2011-03-12 16:35:37

回答

1

看起来你正在绘制两个正态分布。这是matlab中的等价物。

mu1=0;sigma1=1; %# parameters for the first distribution 
mu2=3;sigma2=1; %# parameters for the second distribution 

%# get density at 1000 points equally spaced between mu-4sigma & mu+4sigma for each class 
x1=linspace(mu1-4*sigma1,mu1+4*sigma1,1000); 
p1=normpdf(x1,mu1,sigma1); 

x2=linspace(mu2-4*sigma2,mu2+4*sigma2,1000); 
p2=normpdf(x2,mu2,sigma2); 

%# plot the densities. 
plot(x1,p1,x2,p2)