plot(dengzhixian(:,1),dengzhixian(:,2),'b.'); xx=linspace(min(dengzhixian(:,1)),max(dengzhixian(:,1)),7); yy=linspace(min(dengzhixian(:,2)),max(dengzhixian(:,2)),7); yy=yy'; for jj=1:7 xx(jj,:)=xx(1,:); end for jj=1:7 yy(:,jj)=yy(:,1); end zz=griddata(dengzhixian(:,1),dengzhixian(:,2),dengzhixian(:,3),xx,yy); contour(xx,yy,zz,7)
时间: 2023-08-18 15:07:07 浏览: 29
这段代码是用 MATLAB 绘制等高线图。首先,通过输入变量 dengzhixian 的第一列和第二列数据绘制蓝色散点图。然后,生成 x 和 y 的坐标点,通过 griddata 函数将 dengzhixian 的第三列数据插值到这些坐标点上,生成一个等高线数据矩阵 zz。最后,用 contour 函数绘制等高线图,分为 7 条等高线。
相关问题
plot(dengzhixian(:,1),dengzhixian(:,2),'b.'); xx=linspace(min(dengzhixian(:,1)),max(dengzhixian(:,1)),7); yy=linspace(min(dengzhixian(:,2)),max(dengzhixian(:,2)),7); yy=yy'; for jj=1:7 xx(jj,:)=xx(1,:); end for jj=1:7 yy(:,jj)=yy(:,1); end zz=griddata(dengzhixian(:,1),dengzhixian(:,2),dengzhixian(:,3),xx,yy); contour(xx,yy,zz,7)这段代码生成的等高线图的这几条等高线是折线的效果,能帮我改的让等高线平滑一点嘛
要让等高线更平滑,可以增加 `linspace` 函数的第三个参数,例如将其改为 50,然后使用 `contourf` 函数绘制光滑的等高线图。修改后的代码如下:
```matlab
plot(dengzhixian(:,1),dengzhixian(:,2),'b.');
xx=linspace(min(dengzhixian(:,1)),max(dengzhixian(:,1)),50);
yy=linspace(min(dengzhixian(:,2)),max(dengzhixian(:,2)),50);
[XX,YY]=meshgrid(xx,yy);
zz=griddata(dengzhixian(:,1),dengzhixian(:,2),dengzhixian(:,3),XX,YY);
contourf(XX,YY,zz,50,'LineColor','none')
```
这里使用 `meshgrid` 函数生成网格点坐标矩阵 `[XX,YY]`,然后将 `griddata` 的结果插值到网格点上,最后使用 `contourf` 函数绘制光滑的等高线图,其中 `'LineColor','none'` 参数用于设置等高线的线条颜色为透明。
yieldstress = 333.8624; a1 = -0.1039; limitxy = 500; vmc = @(x, y) sqrt(x.^2 - x.y + y.^2) - yieldstress.(1+a1*(-sqrt(3)/3)); xx = linspace(-limitxy, limitxy, 1000); yy = linspace(-limitxy, limitxy, 1000); [X, Y] = ndgrid(xx, yy); [C, h] = contour(X, Y, vmc(X, Y), [1 1]); h.LineWidth = 1; h.EdgeColor = "b"; h.FaceColor = "r";,给绘制的曲线添加符号标记
可以使用 `plot` 函数在曲线上添加符号标记,代码如下:
yieldstress = 333.8624;
a1 = -0.1039;
limitxy = 500;
vmc = @(x, y) sqrt(x.^2 - x.*y + y.^2) - yieldstress.*(1+a1*(-sqrt(3)/3));
xx = linspace(-limitxy, limitxy, 1000);
yy = linspace(-limitxy, limitxy, 1000);
[X, Y] = ndgrid(xx, yy);
[C, h] = contour(X, Y, vmc(X, Y), [1 1]);
h.LineWidth = 1;
h.EdgeColor = "b";
h.FaceColor = "r";
% 添加符号标记
hold on;
plot(0, 0, "o", "MarkerSize", 8, "MarkerFaceColor", "g", "MarkerEdgeColor", "k");
hold off;