创建类似于天气风暴广播的情节

时间:2015-08-26 14:00:41

标签: matlab animation matlab-figure

我正在尝试使用MATLAB创建一些图表,这些图表类似于天气网络如何显示他们在某个区域内移动的风暴,例如this

我有1000(X,Y)坐标和相关的风暴警告值[X Y StormValue]StormValue的范围介于0:10之间,因此我想为此范围创建colorbar,然后使用{{1}中的相关颜色绘制每个(X,Y)坐标在2D图中。我知道如何创建3D colorbarmesh图,但我很好奇,如果有一种简单的方法可以在MATLAB中进行这种类型的2D绘图。

最终我想创建一个动画,因为我有surf所有1000(X,Y)点1分钟,但我甚至不知道从哪里开始。任何有关在MATLAB中查看内容的帮助或建议都将非常感激。

2 个答案:

答案 0 :(得分:2)

您可以将所有风暴警告值堆叠在矩阵中(例如矩阵img),其中img(i,j)是与x=jy=i对应的值,然后使用函数contourf喜欢:

contourf(img, 10) %// Being 10 the number of levels

要按顺序显示它,您可以将所有值堆叠在一个阵列中,该阵列具有与“帧”一样多的层。其中img(i,j,k)是与x=jy=iframe=k对应的值。你可以简单地使用for循环:

s_per_frame = 0.3 %// seconds per frame
for i=1:size(img,3)
    contourf(img(:,:,i), 10);
    pause(s_per_frame);
end

答案 1 :(得分:0)

对于图,只需为每个图像框创建一个2d矩阵(xystormvalues,就像你拥有它一样。然后,您想要将每个值的强度映射到不同的颜色,您可以在最小到最大风暴值的范围内使用标准的喷射色图(10)

c_map= jet(10);

然后使用图像

显示它
image(your_2D_matrix);
axis off;
colormap(c_map);
colorbar;

然后,正如@dasdingonesin建议的那样,使用getframe拍摄图像的图形,保存它然后通过每帧刷新图形来设置动画。