2017-10-07 106 views
0

我试图在for循环中做散点图,我只绘制最后一点。 但是在看我的绘制点时,它们是从我的等式中获得的点。Scilab散点图for循环

我该怎么做才能获得并绘制最后的点?

下面是代码:

m=1000 
z=4000 
T=200 
pr=101325 
sigma=0.24 
cc=sigma*10^(-18) 
lambda=((1.38*10^(-23)*T)/(sqrt(2)*pr*cc)) 
p=%pi*2 
for I=1:z 
theta=(grand(m,1,"unf",0,p)); 
cx= cumsum(lambda*cos(theta)); 
cy= cumsum(lambda*sin(theta)); 
scatter((cx,cy)) 
xlabel(["x"]); 
ylabel("y"); 
title("Partilcle Distribution"); 
end 
+0

你能改善你的问题吗? “最后一点”是什么意思?我知道你有一个计算''cx''和''cy''的for循环。你想要的只是选择这些矩阵的每个循环中的最后一个值(第1000个值)并将它们一起绘制? – luispauloml

+0

是的,那正是我的意思! –

回答

0

如果你想要的是采取cxcy的最后的值在每个循环中,一个选择是创建新的阵列来存储这些值,并绘制它们的外循环,像这样:

... 
x = zeros(1,z); //row matrix filled with zeros 
y = zeros(1,z); //row matrix filled with zeros 
for I=1:z 
    theta = grand(m,1,"unf",0,p); 
    cx = cumsum(lambda*cos(theta)); 
    cy = cumsum(lambda*sin(theta)); 

    //overwriting values 
    x(I) = cx($); //the dollar sign ($) returns the last element 
    y(I) = cy($); //of a row or a column in a matrix 
end 
scatter(x,y); 
xlabel("x"); 
ylabel("y"); 
title("Partilcle Distribution");