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,有兴趣的自己查帮助文档

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 关于函数模板描述错误的是(链接格式错误怎么解决)

    状况1:函数是通用基本函数,故没有放到任何类中,为全局的。声明与实现分别放到.h和.cpp中,编译报:链接错 1:不使用模板函数,用重载 ok2:使用模板函数,但是将定义也一同放到.h中,ok   状况2:在a.h文件中定义的都是模板函数,添加普通函数,编译连接出错,重定义1:将新函数也定义为模板函数2:将新函数定义到其它的.h文件中 3:

  • Clover 引导器.配置助手[通俗易懂]

    Clover引导器.配置助手.Yosemite版块.更新贴Beta2.0为了让各位下载更方便本帖不设置回帖可见希望路过的朋友帮顶有需要的朋友顶个帖让更多后来者们看见提取码[编译PKG]py81[编译EFI+boot1h2]8ctu[编译ISO]zq9f首先向Clover开发人员致敬:Slice,withhelpofKabyl,

  • eclipse添加logcat显示_eclipse的logcat不见了

    今天打开eclipse调了一会程序,突然发现logcat不见了,只有Console等,找了半天没找到,最后还是苦命的发现了,如下.Window ……Show View……Other…会出现如下对话框:选择LogCat后,eclipse就能正常查看LogCat的输出了。

  • java解析xml转为Map

    java解析xml转为Map之前开发过一个解析多层级xml文件的工具类,后来处理的时候发现,这种方式得到的map或json集合多一个key标签,在解析的时候会比较麻烦,于是根据需要在原有方法的基础上写出了另外的处理方法,总结记录如下:1、单节点单层级、单节点多层级xml转mapimportjava.io.ByteArrayInputStream;importjava.util.ArrayList;importjava

  • java的句柄_java获取窗口句柄

    java的句柄_java获取窗口句柄Java代码书写过程,文件资源的释放需要特别谨慎的对待.通常文件资源使用后必须close,然后再删除。如果先删除但没有close掉,会造成文件句柄未被释放.这会造成实际使用磁盘空间较大,成为瓶颈importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;publicclassFileTest{p…

    2022年10月18日
  • 周末随笔「建议收藏」

    随便记录,聊以自慰这段时间的心思在工作上,也有一段时间没写一些东西了,内心有一些想法,搁置起来了。去年有段时间想着搞搞副业,说实话副业没赚到多少,几百上千的,还是自己能力不够。还是想办法先努力提高主业的收入,作为一个打工者,目前无非就是看哪里搬砖收益更好一点,能有更多点的成长而已。作为程序员,自己对技术的热情大多数只是停留在工作的使用上。这个技术工作中用了没有热情也是强制去了解去学习,要不就慢慢等着淘汰。单独靠热情驱动,还没发现自己真正对什么东西充满热情,有时候觉得可悲,无奈。工作对于目前的我来.

发表回复

您的电子邮箱地址不会被公开。

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