2017-10-07 130 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");