Matlab画三维图_读书笔记图画

Matlab画三维图_读书笔记图画plot3基本的三维曲线图绘制plot3(x,y,z),x,y,z均为相同长度的向量,会得到三个向量相同下标构成的的三维坐标(xi,yi,zi)(i=1~n)连的曲线plot3(X,Y,Z),X,Y,Z均为相同大小的矩阵,均为m*n的矩阵时,plot3命令将绘得m条曲线,每条曲线均为X,Y,Z列向量为(x,y,z)坐标值的曲线例三维圆柱形螺旋线,x,y,z均为相同长度的向量cl

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

Jetbrains全系列IDE稳定放心使用
plot3 基本的三维曲线图绘制

plot3(x,y,z),x,y,z均为相同长度的向量,会得到三个向量相同下标构成的的三维坐标(xi,yi,zi)(i=1~n)连的曲线

plot3(X,Y,Z),X,Y,Z均为相同大小的矩阵,均为m*n的矩阵时,plot3命令将绘得m条曲线,每条曲线均为X,Y,Z列向量为(x,y,z)坐标值的曲线

例 三维圆柱形螺旋线,x,y,z均为相同长度的向量

clear
clc
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t);

Matlab画三维图_读书笔记图画

例 2条三维曲线,第一条是圆柱形螺旋线,第二条是圆锥形螺旋线,X,Y,Z均为501*2的向量

clear
clc
t = 0:pi/50:10*pi;
X=[cos(t);t.*cos(t)/50]'; %[cos(t);t.*cos(t)/50]矩阵为两行,取转置之后变为两列
Y=[sin(t);t.*sin(t)/50]';
Z=[t;t]';
plot3(X,Y,Z);

Matlab画三维图_读书笔记图画

line 绘制直线

line(X,Y) 如果X,Y均为n维向量,则会以X作为x轴坐标,Y轴作为y轴坐标,构成n个点,画出一条折线图(n-1条直线构成)
line(X,Y) 如果X,Y均为相同大小的m*n矩阵,则会把X的第i列和Y的第i列看成X轴和Y轴,画出一条折线图,一共N条折线图
line(X,Y,Z) X,Y可以同时是n维向量,也可以同时是m*n矩阵,作用和二维的一样

例 从(1,4)到(5,5)画一条直线,然后从(5,5)到(3,6)画一条直线

clear
clc
line([1,5,3],[4,5,6]);

Matlab画三维图_读书笔记图画

例 画正五边形

clear
clc
X(1)=0;Y(1)=10;%定义初始坐标
edge=5; %定义边数
angle=2*pi/edge; %定义旋转角度
for i=1:edge
    X(i+1)=cos(angle)*X(i)-sin(angle)*Y(i);
    Y(i+1)=cos(angle)*Y(i)+sin(angle)*X(i);
end
line(X,Y);

Matlab画三维图_读书笔记图画

例 画五角星

clear
clc
X(1)=0;Y(1)=10;%定义初始坐标
edge=5; %定义边数
angle=4*pi/edge; %定义旋转角度
for i=1:edge
    X(i+1)=cos(angle)*X(i)-sin(angle)*Y(i);
    Y(i+1)=cos(angle)*Y(i)+sin(angle)*X(i);
end
line(X,Y);

Matlab画三维图_读书笔记图画

例 画正六边形和正八边形

clear
clc
%%计算正六边形坐标
X1(1)=0;Y1(1)=10;%定义初始坐标
edge=6; %定义边数
angle=2*pi/edge; %定义旋转角度
for i=1:edge+2 %为了保证维数相同多定义两个点
    X1(i+1)=cos(angle)*X1(i)-sin(angle)*Y1(i);
    Y1(i+1)=cos(angle)*Y1(i)+sin(angle)*X1(i);
end
%%计算正八边形坐标
X2(1)=0;Y2(1)=12;%定义初始坐标
edge=8; %定义边数
angle=2*pi/edge; %定义旋转角度
for i=1:edge
    X2(i+1)=cos(angle)*X2(i)-sin(angle)*Y2(i);
    Y2(i+1)=cos(angle)*Y2(i)+sin(angle)*X2(i);
end
line([X1;X2]',[Y1;Y2]');

Matlab画三维图_读书笔记图画

例 画三维直线 XYZ均为向量

clear
clc
line([1,2],[4,5],[5,7]);
view(45,45); %由于line画出的图默认显示的是xoy面的投影,这里通过view进行三维选择(Rotate 3D)
hold on
line([1,2,3],[4,5,9],[5,7,7]);

Matlab画三维图_读书笔记图画

例 画三维直线 XYZ均为矩阵

clear
clc
line([8 0 7;10 8 8;7 9 7],[4 7 0;7 0 1;2 3 8],[14 1 15;6 9 6;19 8 4]);
view(45,45);

Matlab画三维图_读书笔记图画

view 控制视角

view(AZ,EL) AZ为视角点与原点连线投影到xoy面与y轴负向所称夹角,EL为视角点与原点连线与xoy面的投影所成夹角
view([X Y Z]) 设置坐标点XYZ为视角点
view(2) 使用默认的 2-D 视角, AZ = 0, EL = 90.
view(3) 使用默认的 3-D 视角, AZ = -37.5, EL = 30.

Matlab画三维图_读书笔记图画

mesh 普通三维网格曲面,网格图,在行和列上绘制一系列曲线,构成网格
mesh*和surf*一般情况下需要配合meshgrid使用
例 使用普通三维网格曲面绘制抛物面

clear  
clc  
x=-10:0.1:10;  
y=-10:0.1:10;  
[X,Y]=meshgrid(x,y);  
Z=X.^2+Y.^2;    
mesh(X,Y,Z);

Matlab画三维图_读书笔记图画

meshc 带等高线的三维网格曲面,在mesh基础上,在底部绘制轮廓图
例 使用带等高线的三维网格曲面绘制锥面

Matlab画三维图_读书笔记图画

meshz 带底座的三维网格曲面,在mesh基础上,在网格四周绘制“帘子”
例 使用带底座的三维网格曲面绘制双峰函数

clear  
clc  
[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
meshz(X,Y,Z) 

Matlab画三维图_读书笔记图画

waterfall 瀑布图,类似于meshz函数,但在矩阵的列之间不生成线
例 瀑布图

clear  
clc  
x=-10:0.5:10;  
y=-8:0.5:8;  
[X,Y]=meshgrid(x,y);  
Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2); 
waterfall(X,Y,Z);


Matlab画三维图_读书笔记图画

surf 曲面,和mesh的区别是,surf在小矩形上做颜色插值

%参数方程的抛物面
clear  
clc  
u=0:0.1:10;
t=0:pi/50:2*pi;
[U,T]=meshgrid(u,t);
X=U.*cos(T);
Y=U.*sin(T);
Z=U.*U;
surf(X,Y,Z);

Matlab画三维图_读书笔记图画

surfc在surf基础上,在底部绘制轮廓图

%参数方程的锥面
clear  
clc  
u=0:0.1:10;
t=0:pi/50:2*pi;
[U,T]=meshgrid(u,t);
X=U.*cos(T);
Y=U.*sin(T);
Z=U;
surfc(X,Y,Z);

Matlab画三维图_读书笔记图画

surfl 在surf基础上,加入光照

clear  
clc  
[x,y] = meshgrid(-3:1/8:3);
z = peaks(x,y);
surfl(x,y,z);
shading interp %进行色彩的插值处理,使色彩平滑过渡
colormap(gray);  %将彩色图像映射为灰度图像
axis([-3,3,-3,3,-8,8]) %设置坐标范围

Matlab画三维图_读书笔记图画

shading 是用来处理色彩效果的,分以下三种:
no shading 一般的默认模式 即shading faceted
shading flat 在faceted的基础上去掉图上的网格线
shading interp 在flat的基础上进行色彩的插值处理,使色彩平滑过渡

%shading
clear  
clc 
subplot(1,3,1)
sphere(16)
axis square
shading flat
title('Flat Shading')

subplot(1,3,2)
sphere(16)
axis square
shading faceted
title('Faceted Shading')

subplot(1,3,3)
sphere(16)
axis square
shading interp
title('Interpolated Shading')

Matlab画三维图_读书笔记图画

ezplot直接绘图

ezplot(FUN) 直接使用函数表达式绘图,函数表达式也可以自定义的函数名

clear
clc
ezplot('x.*y + x.^2 - y.^2 - 1');

Matlab画三维图_读书笔记图画

例 使用@指定坐标轴

clear
clc
subplot(1,2,1), ezplot('1./z - log(z) + log(-1+z) + t - 1')
%为了避免歧义,建议用下面的方式
subplot(1,2,2), ezplot(@(z,t)1./z - log(z) + log(-1+z) + t - 1)

Matlab画三维图_读书笔记图画

ezplot3(FUNX,FUNY,FUNZ) 使用参数方程x=x(t),y=y(t),z=z(t)画三维图

clear
clc
ezplot3('cos(t)','t.*sin(t)','sqrt(t)')

Matlab画三维图_读书笔记图画

ezcontour(FUN) 画等高线

clear
clc
ezcontour('x*exp(-x^2 - y^2)')

Matlab画三维图_读书笔记图画

此外,还有一系列ez*函数,如ezpolar, ezcontourf, ezsurf, ezmesh, ezsurfc, ezmeshc,有兴趣的自己查帮助文档

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

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

(0)
上一篇 2022年10月11日 下午4:00
下一篇 2022年10月11日 下午4:16


相关推荐

  • 倒立摆matlab仿真程序_倒立摆状态空间建模

    倒立摆matlab仿真程序_倒立摆状态空间建模Matlab程序设计上交作业要求1纸质文档设计分析报告一份包括系统建模、系统分析、系统设计思路、程序及其执行结果。2Matlab程序按班级统一上交后备查。题目一考虑如图所示的倒立摆系统。图中倒立摆安装在一个小车上。这里仅考虑倒立摆在图面内运动的二维问题。图倒立摆系统假定倒立摆系统的参数如下。摆杆的质量m=0.1g摆杆的长度2l=1m小车的质量M=1kg重力加速度g=10…

    2022年8月18日
    8
  • 数据仓库ods是什么意思_数据仓库ODS全拼

    数据仓库ods是什么意思_数据仓库ODS全拼1.引言本篇主要讲述操作数据存储(ODS)系统产生的背景、定义、特点,以及它与数据仓库的区别。在前两篇,笔者介绍了什么是数据仓库?为什么需要数据仓库?数据仓库系统的体系结构是什么?因此可能在读者心里已经形成了企业数据存储的DB~DW两层体系结构的概念,但在实际应用中,并不总是这样,有时候我们可能需要ODS这一系统来搭建DB~ODS~DW三层数据体系,那么什么是ODS?为什么需要ODS?ODS与D…

    2022年10月6日
    5
  • cpu后缀讲解

    cpu后缀讲解Intel桌面式CPUX后缀 X代表Extreme,中文意思是至尊级,代表同一时代性能最强的CPU。如Corei7-5960X、Corei7-4960X。X代表在同一代中只有一款CPU黄袍加身,地位至高无上。加上没有竞争对手可以望其项背,从露面都退出市场,期待的弑君者没有出现。SandyBridge时代到现在,竞争的天平一直向Intel倾斜。K后缀自从SandyBridge时代Intel限制

    2022年5月7日
    56
  • MATLAB求解线性规划(含整数规划和0-1规划)问题[通俗易懂]

    MATLAB求解线性规划(含整数规划和0-1规划)问题[通俗易懂]线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约束的,变量范围为有理数的线性规划。如:对于这类线性规划问题,数学理论已经较为完善,可以有多种方法求解此类问题。但写这篇文章的目的并不是为了介绍数学理论,我们这里主要讲解如果利用工具求解这一类线性规划问题。最著名,同时也是最强大的数学最优化软件是LINGO/LINDO软件包,它能够求解多种的数学规划问题,同时还提供了多

    2022年7月27日
    16
  • SpringBoot+jsp项目启动出现404[通俗易懂]

    SpringBoot+jsp项目启动出现404[通俗易懂]SpringBoot+jsp项目启动出现404

    2022年4月21日
    126
  • Manus 创始人手把手拆解:如何系统性打造 AI Agent 的上下文工程?

    Manus 创始人手把手拆解:如何系统性打造 AI Agent 的上下文工程?

    2026年3月15日
    2

发表回复

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

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