首页 > 解决方案 > for循环中的绘图没有可见点

问题描述

我正在为我想使用 for 循环制作的情节而苦苦挣扎。

我知道当我在循环之后添加它时它会起作用(只是一个简单的情节)。但我想以另一种方式尝试。

fib = ones(1:10);
for k=3:10
    hold on
    fib(k) = fib(k-1) + fib(k-2);
    plot(k,fib(k))
end
hold off

输出是一个绘图,但没有可见的点。

标签: matlabfor-loopplotmatlab-figure

解决方案


您需要指定一个标记。文档说:

如果其中一个XY是标量,另一个是标量或向量,则 plot 函数绘制离散点。但是,要查看这些点,您必须指定一个标记符号,例如,plot(X,Y,'o')

所以它将是:

plot(k,fib(k),'o');

另请注意,您正在创建一个 10 维数组fib = ones(1:10);。您很可能打算在 1 到 10 之间写一个逗号而不是冒号来创建一个行向量。IE

fib = ones(1,10);

或HansHirse 建议的列向量:

fib = ones(10,1);

推荐阅读