首页 > 解决方案 > 使用 for 循环时的空图

问题描述

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

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

但是,通过运行代码,绘图窗口是空的!我该如何解决这个问题才能在 2D 区域上看到一条线?

标签: matlabplot

解决方案


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

您可以做的是保存旧y值和旧x值以要求 Matlab 在这两点之间绘制线性插值。例如

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([kold,k], [yold,y],'blue');

推荐阅读