首页 > 解决方案 > MATLAB:在多维数组上循环时的空白图

问题描述

我的目标输出是在循环遍历多维数组时有四个图显示 (time, dist_a)、(time, speed_a)、(time, dist_b) 和 (time, speed_b)。但是,我只显示 2 个空白图。

这是我的代码:

time = rand(10, 1)
dist_a = rand(10,1)
dist_b = rand(10,1)
speed_a = rand(10,1)
speed_b = rand(10,1)

dist = cat(2, dist_a, dist_b);
speed = cat(2, speed_a, speed_b);

for k = 1:2
figure;
plot(time, dist(k));
plot(time, speed(k));
end

标签: matlabmultidimensional-arrayplot

解决方案


你的问题是双重的。首先,您只绘制了一个点而不是矢量,例如更改dist(k)dist(:,k)修复此问题。其次,如果您想要四个带有执行两次循环的图形,则需要figure在第二个绘图之前包含另一个命令。以下应该满足您的要求,我还添加了一些格式以使图看起来更好

for k = 1:2
    figure
    plot(time, dist(:,k),'o','LineWidth',2);
    xlabel('time')
    ylabel('distance')
    box on
    grid on

    figure
    plot(time, speed(:,k),'o','LineWidth',2);
    xlabel('time')
    ylabel('speed')
    box on
    grid on
end

这使:

在此处输入图像描述


推荐阅读