MATLAB——三维图像
1.绘制三位曲线
(1)plot3函数
1.基本用法:plot3(x,y,z);
其中,参数x、y、z组成一组曲线的坐标。
例1 绘制一条空间曲线
x=[0.2,1.8,2.5];
y=[1.3,2.8,1.1];
z=[0.4,1.2,1.6];
plot3(x,y,z)
grid on
axis([0,3,1,3,0,2]);
例2 绘制螺旋线
t=linspace(0, 10*pi, 200);
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;
subplot(1, 2, 1)
plot3(x, y, z)
grid on
subplot(1, 2, 2)
plot3(x(1:4:200), y(1:4:200), z(1:4:200))
grid on
2.plot3(x,y,z)函数参数变化形式
plot3(X,Y,Z);
- 当三个参数是同型矩阵时,以X,Y,Z对应列元素绘制曲线,曲线条数等于矩阵列数。
- 参数X、Y、Z中有向量,也有矩阵时,向量的长度与矩阵相符。
例3 在空间不同位置绘制5条正弦曲线。
t=0:0.01:2*pi;t=t';x=[t, t, t, t, t];y=[sin(t), sin(t)+1, sin(t)+2, sin(t)+3, sin(t)+4];z=x;plot3(x,y,z)
这个例子也可以采用以下代码实现。
t=0:0.01:2*pi;
x=t;
y=[sin(t); sin(t)+1; sin(t)+2; sin(t)+3; sin(t)+4];
z=x;
plot3(x,y,z)
3.含多组输入参数的plot3函数
plot3(x1,y1,z1,x2,y2,z2,...,xn,yn,zn)
每一组x、y、z向量构成一组数据点的坐标,绘制一条空间曲线。
例4 绘制三条不同长度的正弦曲线。
t1=0:0.01:1.5*pi;
t2=0:0.01:2*pi;
t3=0:0.01:3*pi;
plot3(t1,sin(t1),t1, t2,sin(t2)+1,t2, …t3,sin(t3)+2,t3)
4.含选项的plot3函数
plot3(x,y,z,选项)
例5 绘制空间曲线
t=0:pi/50:6*pi;
x=cos(t);
y=sin(t);
z=2*t;
plot3(x,y,z,'p')
xlabel('X'),ylabel('Y'),zlabel('Z');
grid on
(2)fplot3函数
fplot3(funx,funy,funz,tlims)
其中,funx,funy,funz,tlims代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tlims表示参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认值为[-5,5]。
例6 绘制墨西哥帽顶曲线
xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt, yt, zt, [-12, 12])
用红色点划线绘制墨西哥帽顶曲线。
xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt, yt, zt, [-12, 12], 'r-.')
2.绘制三维曲面
(1)平面网格数据的生成:用矩阵X、Y分别存储每一个小矩形顶点的x坐标和y坐标,矩阵X、Y就是该矩阵区域的xy平面网格坐标矩阵。
产生平面区域内的网络坐标矩阵有两种方法
1.利用矩阵运算生成
x = 2:6;
y = (3:8)’;
X = ones(size(y))x;
Y = yones(size(x));
(2)利用meshgrid函数生成
[X,Y]=meshgrid(x,y);
其中,参数x、y为向量,存储网格点坐标的X、Y为矩阵。
x = 2:6;
y = (3:8)’;
[X, Y] = meshgrid(x, y);
若根据每一个网格点上的x、y坐标求函数值z,则得到函数值矩阵Z。矩阵X、Y、Z中的各个列向量,对应于一条曲线数据点的坐标。
例1:绘制空间曲线
x = 2:6;
y = (3:8)';
[X, Y] = meshgrid(x, y);
Z = randn(size(X));
plot3(X,Y,Z)
grid on;
(3)mesh函数和surf函数的调用格式:
mesh(x,y,z,c)
surf(x,y,z,c)
其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。c省略时,颜色的设定正比于图形的高度。
例2 绘制三维曲面图z=xe^(- x^2- y^2)。
t = -2:0.2:2;
[X, Y] = meshgrid(t);
Z = X .* exp(-X.^2 - Y.^2);
subplot(1,3,1)
mesh(X,Y,Z);
subplot(1,3,2)
surf(X,Y,Z);
subplot(1,3,3)
plot3(X,Y,Z);
grid on
其他调用格式:
mesh(z,c)
surf(z,c)
当x、y省略时,z矩阵的第二维下标当作x轴坐标,z矩阵的第1维下标当作y轴坐标。
(4)绘制三维曲面的函数
- 带等高线的三维网格曲面函数meshc。
- 带底座的三维网格曲面函数meshz。
- 具有等高线的曲面函数surfc。
- 具有光照效果的曲面函数surfl。
例3 用4种方式绘制函数z=(x−1)^2+(y−2) ^2−1的曲面图。其中,x∈[0,2],y∈[1,3]。
[x,y]=meshgrid(0:0.1:2,1:0.1:3);
z=(x-1)^2+ (y-2)^2-1;
subplot(2,2,1);
meshc(x,y,z);title('meshc(x,y,z)')
subplot(2,2,2);
meshz(x,y,z);title('meshz(x,y,z)')
subplot(2,2,3);
surfc(x,y,z);title('surfc(x,y,z)')
subplot(2,2,4);
surfl(x,y,z); title('surfl(x,y,z)')
(5)标准三维曲面
1.sphere函数
[x,y,z]=sphere(n);
产生3个(n+1)阶的方阵,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。
2.cylinder函数
[x,y,z]=cylinder(R,n);
其中,参数R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。
例4 用cylinder函数分别绘制柱面、花瓶和圆锥面。
subplot(1,3,1);
[x,y,z]=cylinder;
surf(x,y,z);
subplot(1,3,2);
t=linspace(0,2*pi,40);
[x,y,z]= cylinder(2+cos(t),30);
surf(x,y,z);
subplot(1,3,3);
[x,y,z]= cylinder(0:0.2:2,30);
surf(x,y,z);
例5 用cylinder函数绘制两个相互垂直且直径相等的圆柱面的相交图形。
[x,y,z]= cylinder(1,60);
z=[-1*z(2,:);z(2,:)];
surf(x,y,z)
hold on
surf(y,z,x)
axis equal
(6)peaks函数
peaks(n)/peaks(V)/peaks(x,y)/peaks
fmeah函数和fsurf函数
用于绘制参数方程定义的曲面
fsurf(funx,funy,funz,uvlims);
fmesh(funx,funy,funz,uvlims);
其中,funx、funy、funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。uvlims为funx,funy和funz的自变量的取值范围,用4元向量[umin,umax,vmin,vmax]描述,默认为[-5,5,-5,5]。
例6 绘制螺旋曲面。
funx = @(u,v) u.*sin(v);
funy = @(u,v) -u.*cos(v);
funz = @(u,v) v;
fsurf(funx,funy,funz,[-5 5 -5 -2])
hold on
fmesh(funx,funy,funz,[-5 5 -2 2])
hold off
MATLAB——三维图像相关推荐
- matlab 三维图像标题title移动
写论文的过程中需要在三维图形下面标注a.b.c--.(例如论文:信息安全突发事件情感领袖群际效应研究) 在网上搜索看到二维图像的标题下移到图像下面的方法. 但关于三维图像标题下移的方法基本没有看到.主 ...
- matlab 三维图像配准,[转载]Matlab实现多种图像配准(转)
本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...
- matlab三维图像比较,matlab 画三维图像
数学学习中,有很多地方需要画图来直观对比显示,本节记录一下用matlab画三维图形的几种方法. 例: , 1.surf.surfc.surfl surf: clear clc close all %% ...
- matlab 三维图像保存,matlab三维动图保存问题
function main() clc; %清除命令窗口的内容 clear all;%清除工作空间的所有变量,函数,和MEX文件 close all;%关闭所有的Figure窗口 hold on; % ...
- matlab 三维图像的绘制
1. 基本绘图函数 plot3() scatter3() 2. 修饰与点缀 但仅使用默认的配置,调用这些绘图函数,不会很丑,但也漂亮不到哪里去. view(az, el),调整视野和视角:
- matlab 三维图像投影,matlab – 3D平面上的三维灰度体积投影
解决方案的新尝试: 在下面的代码中,我使用tformarray()来旋转空间中的结构.首先,数据居中,然后使用rotationmat3D旋转以产生空间变换,然后再将数据移回其原始位置. 因为我之前从未 ...
- MATLAB | 绘制复指数函数 y = exp(j*w*n)的三维图像
MATLAB | 绘制复指数函数 y = exp(j×w×n)的三维图像 1 思路 2 代码 3 结果 4 说明 概要: 本文内容是大二下学期<信号与系统>课上做的一道小题,目的是让我们直 ...
- matlab画三维图如何更改颜色,matlab画三维图像的示例代码(附demo)
当我们学习surface命令时,已经看到了三维作图的一些端倪.在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像. 首先,我们用z=cos(x)sin(y)在-2pi ≤x,y≤ 2 ...
- 用Matlab制作古诺模型企业利润与企业生产数量的三维图像
设价格函数中参数a=100,市场价格p=a-q1-q2,单位成本c=5,企业1生产的数量为q1,企业2生产的数量为q2. 企业1的利润π (q1,q2)= 在matlab中建立以q1和q2为x轴和y轴 ...
最新文章
- Delphi中的容器类(二)
- 综述|深度学习在SLAM定位与建图中的应用(近250篇参考文献)
- Android学习笔记(二三): 多页显示-Flipper的使用
- 数据结构---前序和中序遍历的二叉树序列还原二叉树
- composer-安装插件包
- 开源APM系统skywalking介绍与使用
- 强化学习案例_强化学习实践案例!携程如何利用强化学习提高酒店推荐排序质量...
- 安卓异常总结---GestureBuilder] Re-installation failed due to different application signatures
- Selenium2.0 获取隐藏元素的内容
- [tensorflow]tensorflow2.0的优化理论
- TF2.0-tf.keras.layers.Concatenate
- 修改linux系统的open files参数
- 蚂蚁金服技术专家:mPaaS是如何打造“最懂用户”的App的?
- vue组件之间的数据共享
- 这可能是最全的反爬虫及应对方案,再也不怕爬不到数据了
- 闭关之 Vulkan 应用开发指南笔记(三): 着色器和管线、图形管线
- 第十二周项目五-----迷宫问题之图深度优先遍历解法
- html5 css3 内边距,css什么是内边距?css内边距的设置方法(实例)
- java 运算符优先级
- 搜索引擎可搜到微信公众号内容?百度回应:不能
热门文章
- 用Python爬虫接私活,赚了32K!
- 618超值数码好物有哪些?推荐五款入手超值的数码好物
- three.js/webgl实现室内模型行走
- 一篇文章讲清楚什么是频率、频域、时域
- C++ Builder XE10 关于Panel1属性的设置
- 1036 Boys vs Girls (25 分)
- hdfs spark mysql环境_Mac上Hadoop, HDFS, Hive, Spark环境的安装和搭建
- 微信下线模板消息,订阅通知如何使用?
- 2021级天梯赛ZZULI 1.1-1.8
- 字符串常量和字符串变量