2017-10-07 1 views
0

for 루프에서 마지막 점만 플롯하는 곳에서 scatter plot을 수행하려고합니다. 그러나 내 플롯 포인트를 보면 내 방정식에서 얻은 포인트입니다.for 루프의 Scilab 분산 플롯

마지막 점만 획득하여 플롯 할 수 있습니까?

당신이 원하는 것은 각 루프에 cxcy의 마지막 값을하는 경우
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

, 하나의 옵션이 그 값을 저장하고 외부를 그릴 수있는 새로운 배열을 만드는 것입니다 : 여기

코드입니다 루프는 다음과 같습니다.

... 
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");