MATLAB三维图形的绘制

1,三维曲线

plot3(x,y,z)通过描点连线画出曲图,这里x,y,z都是n维向量,分别表示该曲线上点集的横坐标,纵坐标,竖坐标。

t=0:pi/50:10*pi;
subplot(121),plot3(sin(t),cos(t),t);
subplot(122),fplot3(@(t)sin(t),@(t)cos(t),@(t)t,[0,10*pi])

2,网格图

命令mesh(x,y,z)画网格曲图。这里x,y,z是三个同维数的数据矩阵,分别表示数据点的横坐标,纵坐标,竖坐标,命令mesh(x,y,z)将该数据点在空间中描出u,并且连成网格

示例:绘制二元函数z=sin(xy)/xy

clc,clear,close all
x=-5:0.2:5;
[x,y]=meshgrid(x);%生成网格数据
z=(sin(x./y)+eps)./(x.*y+eps);%为避免0/0,分子分母都加eps,变成浮点精度型
subplot(121),mesh(x,y,z)
subplot(122),fmesh(@(x,y)sin(x.*y)./(x.*y))

3,表面图

命令surf(x,y,z)画三维,这里x,y,z是三个同维数的数据矩阵,分别表示数据点的横坐标,纵坐标,竖坐标

示例:绘制二元函数z=sin(xy)/xy

clc,clear,close all
x=-5:0.2:5;
[x,y]=meshgrid(x);
z=(sin(x./y)+eps)./(x.*y+eps);%为避免0/0,分子分母都加eps,变成浮点精度型
subplot(121),surf(x,y,z)
subplot(122),fsurf(@(x,y)sin(x.*y)./(x.*y))

4,旋转曲图

示例:

使用命令fmesh画图,matlab程序如下:

clc,clear,close all
f=@(x,y,z)x.^2+(sqrt(y.^2+z.^2)-5).^2-16;
subplot(121),fimplicit3(f,[-4,4,-9,9,-9,9])
x=@(u,v)4*cos(u);
y=@(u,v)(5+4*sin(u)).*cos(v);
z=@(u,v)(5+4*sin(u)).*sin(v);
subplot(122),fsurf(x,y,z)

5,二次曲面图形

matlab中使用绘图命令fmesh或fsurf,画显函数或参数方程表示的二次曲面很方便

或者直接用fimlicit3画隐函数表示的二次曲面

5.1 单页双曲面

示例:

clc,clear,close all
f=@(x,y,z)x.^2/4+y.^2/10-z.^2/8-1;
subplot(121),fimplicit3(f,[-20,20,-20,20,-15,15])
x=@(u,v)2*cosh(v).*cos(u);
y=@(u,v)sqrt(10)*cosh(v).*sin(u);
z=@(u,v)2*sqrt(2)*sin(v);
subplot(122),fmesh(x,y,z,[0,2*pi,-pi,pi]);

5.2 双叶双曲面

示例:

clc,clear,close all
f=@(x,y,z)x.^2/9-y.^2/4-z.^2-1;
fimplicit3(f)

5.3 抛物柱面

示例:y^2=x

clc,clear,close all
fsurf(@(y,z)y.^2)

5.4 椭圆锥面

示例:

clc,clear,close all
subplot(121)
fimplicit3(@(x,y,z)x.^2/9+y.^2/4-z.^2,[-6,6,-4,4,-2,2])
subplot(122),x=@(s,t)3*tan(s).*cos(t);
y=@(s,t)2*tan(s).*sin(t);
z=@(s,t)tan(s);
fsurf(x,y,z,[-1,1,0,2*pi])

 

5.5 椭圆球

clc,clear,close all
subplot(121),fimplicit3(@(x,y,z)x.^2/9+y.^2/9+z.^2/6-1)
subplot(122),ellipsoid(0,0,0,3,2,sqrt(6))

5.6 马鞍面

示例:z=xy

clc,clear,close all
fsurf(@(x,y)x.*y)

5.7 椭圆柱面

clc,clear,close all
subplot(121),fimplicit3(@(x,y,z)x.^2/9+y.^2/4-1)
x=@(u,v)3*cos(u);
y=@(u,v)2*sin(u);
z=@(u,v)v;
subplot(122),fsurf(x,y,z)

6,其他曲面图形

clc,clear,close all
r=@(s,t)2+sin(7*s+5*t);
x=@(s,t)r(s,t).*cos(s).*sin(t);
y=@(s,t)r(s,t).*sin(s).*cos(t);
z=@(s,t)r(s,t).*cos(t);
fmesh(x,y,z,[0,2*pi,0,pi]),alpha(0.8)

 clc,clear,close all
fmesh(@(x,y) erf(x)+cos (y),[-5,0,-5,5]), hold on
fmesh (@ (x,y)sin(x)+cos(y),[0,5,-5, 5]), hold off

7,四维数据曲面图

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/473952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux集群

前言: 环境准备:虚拟机,xshell,mysql,tomcat,jdk,centos 虚拟机安装centos可以参考博客:虚拟机安装centos 一,安装jdk 打开xshell 点击cftp,如果没有安装…

HarmonyOS(鸿蒙)应用开发——(一)

目录 1 创建hellopro项目 2 了解ArkTS 3 了解ArkTS的组件 4 组件介绍 4.1 常用基础组件: 4.1.1 Text 4.1.2 Button 4.1.3 TextInput 4.2 容器组件 4.2.1 Column 4.2.2 Row 5 案例——实现一个简易登录页面 5.1 在实现预览效果之前,我们…

记录开发STM32遇到的卡死问题-串口

背景:以STM32作为主控,广州大彩显示屏显示,主控实时采集数据,串口波特率115200.设置收发频率为50Hz,即单片机每秒发送50帧数据,每秒接收50帧数据,每帧数据大概14字节。 问题:系统长…

Cronos zkEVM 基于 Covalent Network(CQT)数据可用性 API,推动其 Layer2 DeFi 生态更好地发展

在一项旨在显著改善 DeFi 生态的战略举措中,Cronos 与 Covalent Network(CQT)携手合作,以期待 Cronos zkEVM 的推出。这一整合,预计将进一步降低以太坊生态系统的交易成本、提升交易速度,并带来更好的交易体…

ZnO非线性电阻片功率损耗的频率特性

对不同频率正弦交流电压作用下直流氧化锌阀片的功率损耗进行了测量。图3.16(a)和(b)分别为试品类型A和试品类型B两种直流ZnO阀片在不同频率电压作用下的功率损耗随荷电率变化的特性。两种阀片的功率损耗都随频率和荷电率的增加而增加。当频率达到1kHz或以上时,阀片的功率损耗增…

SQLiteC/C++接口详细介绍sqlite3_stmt类(二)

返回目录:SQLite—免费开源数据库系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类简介 下一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(三) sqlite3_reset() 功能:重置一个准备好执行的SQL语…

IDEA之This license XXXX has been suspended

IDEA激活码突然报如下错误: This license XXXXX has been suspended. Please contact your license administrator 解决方案: IDEA版本2022.2.3,亲测管用

【机器学习智能硬件开发全解】(十一)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的链接过程】

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 机器学习智能硬件开发全解 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 前言 我们回顾一下上篇文章: 【机器学习…

软件企业在咨询第三方软件测试机构报价时,应提前准备什么资料?

近年来,随着软件行业的迅速发展,软件企业对于软件质量的重视程度日益增加。为了确保软件产品的质量以及用户的满意度,越来越多的企业倾向于委托第三方软件测试机构进行测试工作。在咨询第三方软件测试机构报价之前,软件企业需要提…

SQLiteC/C++接口详细介绍sqlite3_stmt类(四)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(三) 下一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(五) 7. sqlite3_bind_parameter_count函数 sqlite3_bind_param…

风速预测(八)VMD-CNN-Transformer预测模型

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测(一)数据集介绍和预处理-CSDN博客 风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

【实例】React 组件传值方法: Props、回调函数、Context、路由传参

React原始传值方法 借用状态管理库的传值见下篇文:MobX 和 Redux 【实例】React 状态管理库 MobX Redux 入门及对比 文章目录 React原始传值方法父组件->子组件 props子组件->父组件 回调函数Context路由传值 父组件->子组件 props 父组件可以通过属性&a…

sheng的学习笔记-AI-Inception network

目录:sheng的学习笔记-AI目录-CSDN博客 基础知识 构建卷积层时,你要决定过滤器的大小究竟是11(原来是13,猜测为口误),33还是55,或者要不要添加池化层。而Inception网络的作用就是代替你来决定&…

流畅的 Python 第二版(GPT 重译)(一)

前言 计划是这样的:当有人使用你不理解的特性时,直接开枪打死他们。这比学习新东西要容易得多,不久之后,活下来的程序员只会用一个容易理解的、微小的 Python 0.9.6 子集来编写代码 。 Tim Peters,传奇的核心开发者&am…

【数据结构】——线性表(顺序表加链表),万字解读(加链表oj详解)

前言 由于之前存在过对两者的区别考虑,所以把他们放在一起来说,更加容易区别和理解 对于有关线性表的概念这里就不展示了,这里主要是介绍线性表里面的这两个结构的知识点 一.顺序表 1.顺序表介绍 顺序表的存储结构和逻辑结构都是相邻的&a…

前端知识点03(JS)

文章目录 前端知识点03(JS)1、JS中this指向问题2、script中的async和defer的区别3、setTimeOut和setInterval4、Es6和ES5的区别5、ES6的新特性 🎉写在最后 前端知识点03(JS) hello hello~ ,这里是 code袁~&…

SpringCloud-Feign远程调用

使用Feign替代RestTemplate进行远程服务调用&#xff1a; 远程调用配置 1. 引入依赖 我们在order-service服务的pom文件中引入feign的依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starte…

spring MVC是如何找到html文件并返回的?

Spring MVC 搜索路径 启动一个SpringBoot项目时&#xff0c;访问http://localhost:8080&#xff0c;对于SpringMVC&#xff0c;它会默认把这段url看成http://localhost:8080/index.html&#xff0c;所以这两个url是等价的。 .html, .css, .js, .img …都是静态资源文件&#x…

玩转C语言——C语言中内存存储

一、 整数在内存中的存储 我们知道&#xff1a;整数的2进制表⽰⽅法有三种&#xff0c;即 原码、反码和补码 三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤1表⽰“负”&#xff0c;⽽数值位最 ⾼位的⼀位是被当做符号位&#xff0c;…

(学习日记)2024.03.14:UCOSIII第十六节:时间片

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…