李金梦 2021-11-05 11:04 采纳率: 92.3%
浏览 56
已结题

matlab画三维图如何进行变量范围设定?要求:R1<=根号下(x的平方+y的平方)<=R2

程序我是这样写的,不知道怎么设定sqrt(X.^2+Y.^2)的范围在【R1,R2】就直接没设定,所以做出来的图很奇怪,和原图不一样。

syms a b R1 R2;
a=60;
R1=13;
R2=100;
x=linspace(-100,100,100);
y=linspace(-100,100,100);
[X,Y] = meshgrid(x,y);
b=sqrt(X.^2+Y.^2);
Z =(R1-b).*(b-R2)./a;
subplot(1,2,1);
surf(X,Y,real(Z));
subplot(1,2,2);
imagesc(real(Z));

我做出来的图是这样的:

img


别人的图是这样的:

img

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-11-05 12:14
    关注

    你好同学,你用极坐标转换画图就行啦(然后syms这一行给你删了,没啥用):

    a=60;
    R1=13;
    R2=100;
    theta = linspace(0,2*pi,100);%极角
    r = linspace(R1,R2,100);%极径
    [R,T] = meshgrid(r,theta);
    X = R.*cos(T);
    Y = R.*sin(T);
    b=sqrt(X.^2+Y.^2);
    Z =(R1-b).*(b-R2)./a;
    subplot(1,2,1);
    surf(X,Y,real(Z),'edgecolor','none');
    colormap(jet)
    subplot(1,2,2);
    contourf(X,Y,real(Z),'edgecolor','none');
    colormap(jet)
    axis equal
    

    效果:

    img

    如有帮助,还请题主给个宝贵的采纳支持一下答主哟,谢谢啦(づ ̄3 ̄)づ╭❤~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 11月5日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效