【问题标题】:MATLAB: Blanked Plots when Looping on a Multidimensional ArrayMATLAB:在多维数组上循环时的空白图
【发布时间】:2019-05-05 16:15:56
【问题描述】:

我的目标输出是在循环遍历多维数组时显示 (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

【问题讨论】:

  • 试试plot(time, dist(:,k)); plot(time, speed(:,k));dist(k) 只为您提供矩阵中的第 k 个元素。
  • 第二个情节也将覆盖第一个情节。在figure 和第二个plot 之间添加hold on

标签: matlab multidimensional-array plot


【解决方案1】:

您的问题有两个方面。首先,您只绘制了一个点而不是矢量,例如将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

给出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多