[英]Colormap 2D for a scalar - Matlab
我在模擬時間和地點的波浪傳播。 我想在空間中的每個時間步驟為其值創建一個顏色圖。 我的意思是,我想繪制一個由2個軸(x和y)組成的圖形,並按顏色在這些點上顯示波浪的值(波浪變量為V)。 我該怎么做? 我試過了:
for ind1 = 1:length(t)
figure()
trisurf(x1,y1,V(:,ind1),'EdgeColor', 'None', 'facecolor', 'interp');
view(2);
end
但是我收到一條消息,z(= V)應該是一個函數,而不是一個標量。 有什么建議么?
我有兩個選擇,我認為它們不會是完美的,但這可能會有所幫助。
首先,將數據插值到矩形網格上,然后使用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個控件控制着每個標記的大小,您可能必須嘗試一下。
希望能給您一些想法。
我做了一個循環,終於可以了:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.