gpt4 book ai didi

matlab - 随时间绘制风速和风向

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:05 26 4
gpt4 key购买 nike

我正在尝试制作一个可以随时间显示风速和风向的绘图。一位同事建议在风速时间序列图上的每个点上添加一条指向风向的线。

我认为计算直线会相当简单。我使用了 here 中的三角公式.然而,情节并没有像我预期的那样显示。所有的线看起来都好像具有零斜率,而不是从 -1 到 1 变化。

这是我的代码:

wdates = [   7.357325746759259E5;   7.357325747916667E5;   7.357325749074074E5;    7.357325750231481E5;   7.357325751388889E5;   7.357325752546296E5;   7.357325753703704E5;   7.357325754861111E5;   7.357325756018518E5;   7.357325757175926E5;   7.357325758333333E5;   7.357325759490741E5;   7.357325760648148E5];
topspeed = rand(size(wdates)) * 2;

toprdir = [0 pi/6 pi/4 pi/3 pi/2 2*pi/3 3*pi/4 pi 5*pi/4 4*pi/3 3*pi/2 5*pi/3 7*pi/4];
toprdir = toprdir';

h = figure(1);
plot(wdates,topspeed,'s');
datetick('x')
hold all;

%find slope
topslopes = tan(toprdir);

for i=1:length(wdates)
%find start point.
clear x;
clear y;
x(1) = wdates(i);
y(1) = topspeed(i);
d = .0001;

%x(2) = d * cos(atan(topslopes(i))) + x(1); %did not work?
%y(2) = d * sin(atan(topslopes(i))) + y(1); %did not work?
x(2) = d * cos(toprdir(i)) + x(1);
y(2) = d * sin(toprdir(i)) + y(1);
plot(x,y);
end

And here is the result .

最佳答案

您会看到所有线条看起来都具有零斜率,因为您的轴具有非常不同的范围。

相反,根据您的轴范围创建比例因子。请注意,我只是估算了 dy、dx 的值,但您应该根据您的数据和每个轴的物理尺寸来计算它们应该是多少(例如,确保 45 度线看起来像 45 度)。您可以使用“轴正方形”使尺寸相同。

dy = 1;
dx = 0.001;

x(2) = dx * cos(toprdir(i)) + x(1);
y(2) = dy * sin(toprdir(i)) + y(1);

修改这些行后,生成的图形如下所示: enter image description here

关于matlab - 随时间绘制风速和风向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23918419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com