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 13:07:07 浏览: 78
要让等高线更平滑,可以增加 `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;
clc disp('Optimal fish Harvest example with use of EV option') c1=1.15; c2=0.15; recruitment = @(S,A) c1*S./(1+c2*S).*(1-A); harvest = @(S,A) c1*S./(1+c2*S).*A; ns=126; smax=1.25; na=50; s=linspace(0,smax,ns)'; a=linspace(0,1,na)'; X=rectgrid(s,a); [Ix,S]=getI(X,1); Splus=recruitment(X(:,1),X(:,2)); EV = @(V) pchip(s,V,Splus); g = @(X) recruitment(X(:,1),X(:,2)); clear options options.algorithm='f'; options.modpol=500; options.getAopt=1; clear model1 model1.name='Fish EV demo - uses pchip interpolation to compute E[V+|X]'; model1.X=X; model1.P=EV; model1.EV=true; model1.R=harvest(X(:,1),X(:,2)); model1.discount=0.99; model1.ns=ns; model1.Ix=Ix; tic results1=mdpsolve(model1,options); toc v1=results1.v; a1=results1.Xopt(:,2); model2=model1; model2.name='Fish EV demo - uses g2P to compute P matrix'; model2.P=g2P(g,s,X); model2.EV=false; tic results2=mdpsolve(model2,options); toc v2=results2.v; a2=results2.Xopt(:,2); fprintf('Maximum difference in value function: %1.4e\n',max(abs(v1-v2))) fprintf('Maximum difference in strategy: %1.4e\n',max(abs(a1-a2))) ss=linspace(0,1.5,16)'; figure(1) plot(ss,g([ss,zeros(size(ss,1),1)]),'-k.',ss,ss,'k') set(gca,'Xtick',ss,'YTick',ss) grid on xlabel('S') ylabel('S^*') figure(2) plot(s,[v1 v2]) xlabel('population size (S)') ylabel('value (V)') figure(3) plot(s,[a1 a2]) xlabel('population size (S)') ylabel('optimal harvest rate (A)')
这是一个 MATLAB 脚本,用于演示一个渔业资源管理的最优捕问题。具体来说,脚本中包括以下部分:
- `clc` 和 `disp`:清除命令窗口并输出一行文字。
- `c1=1.15; c2=0.15;`:定义两个常数。
- `recruitment` 和 `harvest`:定义两个匿名函数,分别表示鱼群增长函数和捕捞函数。这里的具体形式采用了经验公式,其中 `S` 表示鱼群数量,`A` 表示捕捞率。
- `ns=126; smax=1.25; na=50;`:定义三个参数,分别表示鱼群数量、鱼群最大值和捕捞率的数量。
- `s=linspace(0,smax,ns)'; a=linspace(0,1,na)'; X=rectgrid(s,a);`:生成一个二维网格,其中 $x$ 轴表示鱼群数量,$y$ 轴表示捕捞率。
- `getI`:一个自定义函数,用于获取网格中每个点的索引。
- `Splus=recruitment(X(:,1),X(:,2)); EV = @(V) pchip(s,V,Splus);`:计算每个状态的期望回报,其中 `Splus` 表示每个状态下的鱼群增长率,`EV` 是一个匿名函数,用于根据当前状态的鱼群数量计算期望回报。这里采用了 pchip 插值的方法。
- `g`:一个匿名函数,表示鱼群增长函数。
- `options`:一个结构体,包含一些求解 MDP 问题的选项。
- `model1`:一个结构体,用于描述 MDP 问题的模型。其中包括状态、动作、转移概率、回报等信息。
- `mdpsolve`:一个自定义函数,用于求解 MDP 问题。
- `results1`:一个结构体,包含求解结果,包括最优值函数和最优策略。
- 同理,`model2`、`results2`、`v2` 和 `a2` 是用于比较不同求解方法的变量。
- `fprintf`:用于输出一些比较结果。
- `ss`:一个行向量,表示用于绘图的 $x$ 坐标。
- `figure`:用于创建图形窗口。
- `plot`:用于绘制图形。
- `set`:用于设置图形属性。
- `xlabel` 和 `ylabel`:用于设置坐标轴标签。
整个脚本的作用是,通过求解一个 MDP 问题,得到在不同情况下的最优捕捞策略和期望回报。同时,通过绘制图形的方式,展示了鱼群数量和最优捕捞率之间的关系,以及不同求解方法的比较结果。
阅读全文