MATLAB:3个矢量轮廓绘图

时间:2014-03-16 23:13:13

标签: matlab contour

你能用这个等高线图来帮我吗?我有一个.dat存档,我有4列,每列有55个值。

X,n,log10(resistivity),Y
-3.50, -1.00, 0.99, -1.00
-2.50, -1.00, 0.98, -1.00 
-1.50, -1.00, 0.90, -1.00 
-0.50, -1.00, 1.26, -1.00 
0.50, -1.00, 1.26, -1.00 
1.50, -1.00, 1.26, -1.00 
2.50, -1.00, 2.02, -1.00 
3.50, -1.00, 2.01, -1.00 
-4.00, -2.00, 0.98, -1.50 
-3.00, -2.00, 0.96, -1.50 
-2.00, -2.00, 0.83, -1.50 
-1.00, -2.00, 1.26, -1.50 
0.00, -2.00, 1.26, -1.50 
1.00, -2.00, 1.26, -1.50 
2.00, -2.00, 1.26, -1.50 
3.00, -2.00, 2.04, -1.50 
4.00, -2.00, 2.02, -1.50 

等等,直到55个值......我知道n = 1重复8次,n = 2次重复9次,n =重复10次,n = 4次重复9次,n = 5次重复10次n = 6次重复9次。

我必须制作轮廓X,N,log10(resistivity)。 我只是不知道如何塑造它。

我读到这样的话:

datos3=dlmread('salida.dat',',',1)
XX=datos3(:,1)
NN=datos3(:,2)
RHOA=datos3(:,3)
YY=datos3(:,4)
你可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以这样做:

x = datos3(:,1);
y = datos3(:,2);
z = datos3(:,3);

xmesh = linspace(min(x),max(x));
ymesh = linspace(min(y),max(y));
[Xi,Yi] = meshgrid(xmesh, ymesh);

F = TriScatteredInterp([x,y], z);
Zi = F(Xi,Yi);

contour(Xi,Yi,Zi)

我希望这会有所帮助。