使用for循环时的空图

时间:2018-05-06 19:19:18

标签: matlab plot

我想使用for循环来绘制函数。代码是

y = 0;
for k = 0:0.1:2
    y = y + k;
    plot(k, y);
    hold on;
end

但是,通过运行代码,绘图窗口是空的!如何修复它以便在2D区域看到一条线?

1 个答案:

答案 0 :(得分:3)

Matlab自动绘制给予plot函数的点之间的线性插值。因此,由于您只给出一个点,因此不会发生插值。

您可以做的是保存旧的y值和旧的x值,让Matlab在这两点之间绘制线性插值。 e.g。

yold = 0; %Init
kold=0; %Init
for k = 0:0.1:2
    y = yold + k; %New y value
    plot([kold,k], [yold,y]); %Plot a linear interpolation
    kold = k; %Save the new values as old
    yold = y; %Same
    hold on;
end

修改/注:

当在同一窗口中添加新图时,MATLAB会自动更改颜色,因此上面会给你一个彩虹,这很不错,但如果你想保持专业,你可以为plot命令添加一个颜色,例如

plot([kold,k], [yold,y],'blue');