2017-06-03 28 views
0

我應該在我的代碼中更改countorf顯示哪些區域具有更多色差?countourf在Matlab中不顯示彩色區域

clear all; 
close all; 
phi=90; 
[xx,yy] = meshgrid(-20:0.1:20,-20:0.1:20); 
Idontwantthis = (xx.^2+yy.^2)<0.1; 
u = (xx./(xx.^2+yy.^2).^(3/2)); 
v = (yy./(xx.^2+yy.^2).^(3/2)); 
data= sqrt(u.^2+v.^2); 
data(Idontwantthis)=NaN; 
u(Idontwantthis)=NaN; 
v(Idontwantthis)=NaN; 
contourf(xx,yy,data,20); 
+0

此代碼不完全重現。發佈完整的代碼,例如你在哪裏設置'x'和'y'?你有沒有嘗試改變'colormap'? – kedarps

+0

對不起,完成。 @kedarps –

+0

嘗試使用'contour'而不是'contourf'。 – kedarps

回答

0

首先,你不需要meshgrid超過[-20 20]。嘗試將範圍縮小至[-2 2]。運行contourf後,改變顏色表:

clear all; 
close all; 
phi=90; 

[xx,yy] = meshgrid(-2:0.01:2,-2:0.01:2); 

Idontwantthis = (xx.^2+yy.^2)<0.1; 
u = (xx./(xx.^2+yy.^2).^(3/2)); 
v = (yy./(xx.^2+yy.^2).^(3/2)); 
data= sqrt(u.^2+v.^2); 
data(Idontwantthis)=NaN; 
u(Idontwantthis)=NaN; 
v(Idontwantthis)=NaN; 

contourf(xx,yy,data,20); 
colormap hsv; 

這是你的結果將是什麼樣子: contour plot with hsv colormap

希望幫助!

+0

太棒了!謝謝。 ++ –