用于标量的Colormap 2D - Matlab

时间:2014-05-21 04:01:06

标签: matlab 2d colormap

我在时间和地点模拟波传播。我想在空间中为每个时间步长制作一个值的颜色图。我的意思是,我想制作一个2轴(x和y)的图形,并按颜色显示这些点的波形值(波形变量为V)。 我该怎么做? 我试过了:

for ind1 = 1:length(t)
figure()
trisurf(x1,y1,V(:,ind1),'EdgeColor', 'None', 'facecolor', 'interp');
view(2);
end

但是我得到一条消息,z(= V)假设是一个函数,而不是一个标量。 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我有两种选择,我认为它们不会很完美,但它可能会有所帮助。

首先,将数据插入矩形网格并使用contourf

F=scatteredInterp(x,y,V(:,ind1));
X=linspace(min(x),max(x));
Y=linspace(min(y),max(y));
contourf(X,Y,F(X,Y))

其次,使用scatter绘制不同颜色的点:

scatter(x,y,25,V(:,ind1))

其中25控制每个标记的大小,您可能需要对其进行试验。

希望能给你一些想法。

答案 1 :(得分:0)

我做了一个最终有效的循环:

clear heart_movie
Vnorm = mat2gray(V(:,1:2000));
x1_new = x1-min(x1)+1;
y1_new = y1-min(y1)+1;

for ind1 = 1:2000
    heart = zeros(max(x1_new),max(y1_new));
    z = Vnorm(:,ind1);
    for ind2 = 1:length(z);
        heart(y1_new(ind2),x1_new(ind2))= z(ind2);
    end
    colormap(jet);
    imagesc(flipud(heart));
end