2017-10-07 29 views
0

私は最後の点だけをプロットするforループで散布図を作成しようとしています。 しかし、私のプロットした点を見ると、私の方程式から得られた点です。forループのScilab散布図

最後のポイントを取得してプロットするだけで何ができますか?ここで

はコードです:

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-loopがあることを理解しています。あなたが望むのは、それらの行列の各ループの最後の値(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");