0

我的代码创建了三个数据点“线”,但不会将这些点连接成线!我查看了教程,并尝试了诸如 plot(Time, CurrentSpeed1, '--') 和添加标记之类的方法,但无论如何,它始终是三个不同颜色的未连接点系列。这是我得到的:

Time = 0;

while (Acceleration1 > 0.012 || Acceleration2 > 0.012 || Acceleration3 > 0.012)
    Drag = (1/2) * AirDensity * (CurrentSpeed1^2) * DragCoefficient * Area;
    Force = EnginePower/CurrentSpeed1;
    Acceleration1 = (Force-Drag)/EmptyWeight;
    CurrentSpeed1 = CurrentSpeed1 + Acceleration1;

    Drag = (1/2) * AirDensity * (CurrentSpeed2^2) * DragCoefficient * Area;
    Force = EnginePower/CurrentSpeed2;
    Acceleration2 = (Force-Drag)/HalfWeight;
    CurrentSpeed2 = CurrentSpeed2 + Acceleration2;    

    Drag = (1/2) * AirDensity * (CurrentSpeed3^2) * DragCoefficient * Area;
    Force = EnginePower/CurrentSpeed3;
    Acceleration3 = (Force-Drag)/FullWeight;
    CurrentSpeed3 = CurrentSpeed3 + Acceleration3;

    plot(Time, CurrentSpeed1, Time, CurrentSpeed2, Time, CurrentSpeed3);

    Time = Time + 1;
    hold on
end

xlabel('Time (Seconds)');
ylabel('Speed (m/s)');
hold off

为什么哦为什么?干杯:)

4

2 回答 2

1

您的时间和速度变量是单个值,因此当您绘制时您会得到分数。要绘制一条线,您需要一个值数组。例子:

figure
hold all
plot(3, 4, 'o') % plot a point
plot(1:10, 1:10) % plot a line

在循环内部,您需要将计算值存储在数组中,然后在循环之后绘制数组。

于 2013-04-30T16:45:37.827 回答
1

正如@shoelzer 所说,您需要一个值数组。这是您的代码的简化版本以显示示例:

Time = 0;
CurrentSpeed1=0;
CurrentSpeed2=0;
CurrentSpeed3=0;
while (Time<10)
    OldTime=Time;
    Time = Time + 1;

    OldSpeed1=CurrentSpeed1;
    CurrentSpeed1 = Time+1;

    OldSpeed2=CurrentSpeed2;
    CurrentSpeed2 = Time+2;    

    OldSpeed3=CurrentSpeed2;
    CurrentSpeed3 = Time+3;


    plot([OldTime Time], [OldSpeed1 CurrentSpeed1], [OldTime Time], [OldSpeed2 CurrentSpeed2], [OldTime Time], [OldSpeed3 CurrentSpeed3]);

    hold on
end

xlabel('Time (Seconds)');
ylabel('Speed (m/s)');
hold off

我只是确保存储“旧”点,然后我可以将它们与新点连接起来

于 2013-04-30T16:53:33.897 回答