利用matlab画三维图像_使用变身卡进行擂台切磋

利用matlab画三维图像_使用变身卡进行擂台切磋使用MATLAB进行三维图像绘制

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、mesh  绘制无线网格网络图

      其中x是n维向量,y是m维向量,z是m*n维向量 

     除了mesh函数meshc函数还能在xy平面上绘制曲面的等高线,meshz函数还能在xy平面上绘制曲面的底座

mesh(x,y,z)
x=1:0.1:10;
y=1:0.1:10;
[x,y] = menshgrid(x,y);
z=x.^2-y.^2;
mesh(x,y,z)

利用matlab画三维图像_使用变身卡进行擂台切磋二、surf   绘制曲面
       surf函数和mesh函数的调用格式基本相同两者的区别在于mesh绘出彩色的线,surf绘出彩色的面除了surf函数图形外还有surfc函数它能在xy平面上绘制曲面的等高线,surfl函数它加上了灯光效果,看起来自然点如图2-1

      那么如何去设置彩色模式呢?shading 是用来处理色彩效果的,分以下三种: shading faceted是默认的模式 shading flat 在faceted的基础上去掉,图上的网格线 shading interp 在flat的基础上进行色彩的插值处理,使色彩平滑过渡如图2-2

[x,y] = meshgrid(-5:0.5:5); % 快速生成网格所需的数据
tem = sqrt(x.^2+y.^2)+1e-12; 
z = sin(tem)./tem; % 如果不对tem处理,那么z的最中间的一个值 0/0 = NaN
subplot(1,2,1)
mesh(x,y,z)
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签
axis vis3d % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
title('mesh(x,y,z)')
subplot(1,2,2)
surf(x,y,z) % (X(j), Y(i), Z(i,j))是线框网格线的交点
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签
axis vis3d % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
title('surf(x,y,z)')

利用matlab画三维图像_使用变身卡进行擂台切磋

图2-1

 利用matlab画三维图像_使用变身卡进行擂台切磋

图2-2 

三、contour   绘制等高线图

      contour(x,y,z,n) 在x-y平面绘制等高线图,n是一个标量,那么Matlab会将等高线的层数设置为n,且会自动选择层所在的高度,如果不加n,会自动设置层数。

      contour3函数:3维等高线图,等高线不再投影到x-y平面
      contour3(x,y,z,levels,‘ShowText’,‘on’)
      xlabel(‘x轴’); ylabel(‘y轴’); zlabel(‘z轴’); % 加上坐标轴的标签

[x,y] = meshgrid(-3:0.1:3); 
% 一个语句太长时,可以加上三个点然后在下一行继续写
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)... 
 -10* (x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...
 - 1/3*exp(-(x+1).^2 - y.^2); % matlab中内置的peaks函数,常常作为演示使用
% edit peaks
contour(x,y,z)
xlabel('x轴'); ylabel('y轴'); % 加上坐标轴的标签

利用matlab画三维图像_使用变身卡进行擂台切磋

 

       contourf函数和contour函数类似,只不过画出来的等高线图有颜色填充,然后再后面加上showText和on参数使得数值显示。

contourf(x,y,z,'ShowText','on')

利用matlab画三维图像_使用变身卡进行擂台切磋

 四、绘制符号函数图

         plot3函数类似于plot函数,实际上可以认为画的是三维空间下的折线图

t = linspace(0,4*pi,100); % 符号是t,t从0变动到4pi,等分为100个点
x = sin(t)+1; % 利用t计算x的值
y = cos(t); % 利用t计算y的值
z = t; % 利用t计算z的值
plot3(x,y,z) % 绘制三维空间下的折线图

利用matlab画三维图像_使用变身卡进行擂台切磋

定义符号表达式,利用fplot3(x,y,z)可以得到结果

syms t % 符号是t
x = sin(t)+1;
y = cos(t); 
z = t;
fplot3(x,y,z) % 默认t的变化范围为[-5 5]

     fmesh() 三维曲面网格图,效果类似mesh函数

syms x y 
z=x^2+y^2;
fmesh(z) % 默认x的变化范围和y的变化范围都是[-5 5]

利用matlab画三维图像_使用变身卡进行擂台切磋

 fsurf 三维曲面图

syms x y 
z=x^2+y^2;
fsurf(z) % 默认x的变化范围和y的变化范围都是[-5 5]

利用matlab画三维图像_使用变身卡进行擂台切磋

 
fcountour()绘制登高线图

syms x y 
z=x^2+y^2;
fcontour(z) % 默认x的变化范围和y的变化范围都是[-5 5]

利用matlab画三维图像_使用变身卡进行擂台切磋

五、 隐函数绘图


    fimplicit(f,interval)指定绘图区间[]依次是x,y,z的上下范围

% fimplicit3(f) 在默认区间 [-5 5]上绘制 f(x,y,z) = 0 定义的三维隐函数。
f = @(x,y,z) x.^2 + y.^2 - z.^2; % 函数句柄(在拟合那一节里面介绍过),这里要注意,要用点运算符
fimplicit3(f)
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签

利用matlab画三维图像_使用变身卡进行擂台切磋 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183082.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月11日 下午6:36
下一篇 2022年10月11日 下午6:36


相关推荐

  • PDF与TGA互转工具

    PDF与TGA互转工具

    2026年3月13日
    3
  • 浅析ASP.NET的IIS映射

    浅析ASP.NET的IIS映射

    2021年8月6日
    72
  • 解决微信小程序errcode:40029[通俗易懂]

    解决微信小程序errcode:40029[通俗易懂]第一次接触微信小程序,喜提errcode:40029errmsg:”invalidcode,hints:[req_id:6HfBbZyFe-8y]场景:写完接口之后前端联调一直500,最后发现是获取的时候微信报错了。解决办法:导入项目的时候appid要填入你请求session_key的appid,如图所示(我这个开发者工具是旧版的)还有一种解决方法是其他文章找…

    2022年5月24日
    358
  • 对dropout的理解详细版[通俗易懂]

    对dropout的理解详细版[通俗易懂]dropout可以让模型训练时,随机让网络的某些节点不工作(输出置零),也不更新权重(但会保存下来,下次训练得要用,只是本次训练不参与bp传播),其他过程不变。我们通常设定一个dropoutradio=p,即每个输出节点以概率p置0(不工作,权重不更新),假设每个输出都是独立的,每个输出都服从二项伯努利分布p(1-p),则大约认为训练时,只使用了(1-p)比例的输出,相当于每次训练一个子网络。测…

    2022年5月2日
    74
  • linux看硬盘使用时间,linux查看硬盘使用时间

    linux看硬盘使用时间,linux查看硬盘使用时间说明 此方法只适用于独服 方法这里用的 centos 系统 yuminstallsm y 如果有阵列使用命令 smartctl a dev sg0smartctl a dev sg1smartctl a dev sg2sg1 是阵列卡如果就普通硬盘没有阵列使用命令 smartctl A dev sda 如果不行用 df 看看硬盘名称 把 sda 换了即可如果正常

    2026年3月17日
    2
  • C#之ArcGIS二次开发

    C#之ArcGIS二次开发根据图层名称获取图层publicIFeatureLayergetLayer(AxMapControlaxMapControl,stringlayerName){if(axMapControl.LayerCount>0){for(inti=0;i

    2022年6月26日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号