【问题标题】:Overlay figure (Matlab)叠加图(Matlab)
【发布时间】:2015-12-13 14:54:52
【问题描述】:

我有一个地球陆地的文件,其中海洋像素的值为 0,陆地像素的值为 1。通过定义,海洋像素为蓝色,陆地像素为绿色

imagesc(landmass)
colormap('winter')

现在我想用一个动态更新这个传播的 for 循环在这张地图的顶部绘制一种疾病的传播(与陆地大小相同的矩阵)。但是,我不知道如何正确执行。当某个像素没有疾病时,应该只显示陆地文件。当像素上有疾病时,必须被疾病矩阵覆盖。

image(disease);
map = 'jet';
colormap(map);

我试过了,但它不起作用(所以这是在更新疾病矩阵的循环内):

for t=1:365
   disease=disease+t;
   figure(1);      
   imagesc(landmass)
   colormap('winter')
   hold on;
   if disease>0
      image(disease);
      map = 'jet';
      colormap(map);
   end
  title(sprintf('Day %i',t));                                 
  drawnow;
end

【问题讨论】:

    标签: matlab loops plot overlay


    【解决方案1】:

    您需要获取原始矩阵 landmass 并在要覆盖数据的索引处更新它,而不是仅更新疾病数组。您可以更改代码以执行以下操作

    landmass(x,y,:)=diseasepixel;
    imagesc(landmass);
    

    其中 diseasepixel 将是您当时想要的颜色值。

    【讨论】:

    • 嗯,我不明白这一点。你能提供更多信息吗?谢谢
    • 为了更清楚,如果您试图在陆地图片顶部放置一个病变像素,只需更改该点的陆地矩阵的值并更新图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2013-05-07
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多