【问题标题】:Plot straight line over a interval in MATLAB在 MATLAB 中绘制区间上的直线
【发布时间】:2014-03-23 21:13:27
【问题描述】:

我想在一个区间上画一条直线。例如,我有两个变量:h 和 Time。当时间在 0 到 0.56 之间时,h 值为 0.25。我需要它是一条直线。同样,对于其他点。当我使用函数 plot(Time,h) 时,线是连接的。我不想要这个。

在这方面需要一些指导..

看起来像这样:

到目前为止我尝试了什么?

function PlotH(Time,h)
    for i=2:size(Time)
        x = h(i)*ones(1,Time(i));
        hold on;
    end
    plot(x)
    ymax = max(h);
    xlim([1 max(Time)]);
    ylim([-0.5 ymax+0.5]);
    xlabel('Time')
    ylabel('Rate')
end

【问题讨论】:

  • 这应该可以帮助您入门:plot(Time,h,L)。并根据您的需要设置L=L = '-' 线,L = '.' 点,L = '--' 虚线,L = 'o' 空点。此外,是否曾尝试在 Matlab 中将鼠标悬停在函数上时按 F1?很有帮助
  • 还是不行..
  • 你用来绘制图形的代码是什么?
  • 如我在第一条评论中所述,将为您提供一条连接线。如果你想要单独的点,你可以使用'.'。尝试使用plot(Time(1:5,h(1:5),'-');hold on;plot(Time(6:end),h(6:end),'.')
  • 我需要一段直线..

标签: matlab plot


【解决方案1】:

更简单,只需使用stairs。这将从间隔的 start 中获取值,因此要匹配示例并使用每个间隔的 end 中的值,您需要转移 hTime 相对于彼此,例如stairs(Time(2:end), h(1:end-1)).

【讨论】:

  • 我承认在我发现 stairs 存在之前,我自己也实现了好几次 ;)
【解决方案2】:

问题答案:

function PlotH(Time,h)
    for i=2:size(Time,1)
        plot([Time(i-1), Time(i)],[h(i), h(i)])
        hold on;
    end
    ymax = max(h);
    xlim([1 max(Time)]);
    ylim([-0.5 ymax+0.5]);
    xlabel('Time')
    ylabel('Rate')
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-18
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 2018-08-17
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多