【问题标题】:Scilab scatter plot in a for loopfor循环中的Scilab散点图
【发布时间】:2017-10-08 03:42:49
【问题描述】:

我正在尝试在 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

【问题讨论】:

  • 你能改进你的问题吗? “最后一点”到底是什么意思?我知道您有一个计算 cxcy 的 for 循环。您想要的是只选择这些矩阵的每个循环中的最后一个值(第 1000 个值)并将它们绘制在一起?
  • 是的,我就是这个意思!!

标签: scatter-plot scilab


【解决方案1】:

如果您想要在每个循环中获取 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");

【讨论】:

    猜你喜欢
    • 2019-11-23
    • 1970-01-01
    • 2018-04-11
    • 2020-09-25
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2019-10-21
    • 2015-06-07
    相关资源
    最近更新 更多