Matlab学习笔记(一)—— 三维图形绘制
这学期公选课选的是MATLAB,所以准备把这学期所学习的整理到博客上,作为记录,哇咔咔~
一、三维函数图:
x=cos(t), y=sin(t), z=t %≤t ≤*pi
t=:0.001:*pi; %t的取值范围
x=cos(t);y=sin(t);z=t;
plot3(x,y,z)
xlabel('x轴'),ylabel('y轴'),zlabel('z轴') %为坐标轴加上标签
grid on %为图像加上网格
三维函数的绘制一般使用plot3()函数,其三个基本参数是三个参数函数,第四个参数可以改变函数的颜色,或者虚实线,如plot3(x, y, z, 'r:'),其绘制的函数图像则为红色虚线的,上述脚本的运行结果如下:

二、三维饼图:
pie3([ ])
直接调用上述脚本既可以绘制出一个饼图,如果这样调用pie3([4 3 6 8 9], [0 0 1 0 0]),则在第二个向量中值为1的部分会在饼图中以突出的方式显示,上述脚本运行结果如下:

三、绘制空间多边形:
y1=rand(,);
y2=rand(,);
y3=rand(,);
fill3(y1,y2,y3,'m');
hold on;
plot3(y1,y2,y3,'yo')
首先rand(3, 5)产生了一个3 * 5 的随机数矩阵,上述脚本中先产生了y1,y2, y3三个3 * 5 的随机矩阵,其中
A = ( y1[0][0], y2[0][0],y3[0][0] ),
B = ( y1[1][0], y2[1][0], y3[1][0] ),
C = ( y1[2][0], y2[2][0], y3[2][0] )
分别是第一个三角形的三个顶点,其他以此类推。所以fill3(y1,y2,y3,'m'); 共产生了5个三角形,并以粉色填充,plot3(y1,y2,y3,'yo')语句是在每个三角形的顶点加上黄色的小圈,而由于之前加上了hold on; 所以前面的粉色三角形不会被覆盖,运行效果如下:

四、三维网格图:
1、mesh()函数生成网格图:
h2=[ ; -]
h4=[h2 h2;h2 -h2]
h8=[h4 h4;h4 -h4]
mesh(h8)
上面由迭代生成一个8*8的矩阵,即:
         -         -         -         -
              -    -              -    -
         -    -              -    -
                        -    -    -    -
         -         -    -         -
              -    -    -    -
         -    -         -              -
mesh()函数以矩阵的下标为x,y坐标,生成一个网格图,运行效果如下:

2、meshgrid()函数:
a=[:]
b=[:]
[A,B]= meshgrid(a,b)
上述生成了A,B两个矩阵:
A = B =
命令等效于:A=ones(size(b))*a; B=b'*ones(size(a))
3、利用meshgrid()函数和mesh()函数生成网格图:
x=-:; y=x;
[X,Y]=meshgrid(x,y);
Z=X.^+Y.^ ;
mesh(X,Y,Z)
上述脚本先使用meshgrid()函数生成11 * 11的矩阵,再使用mesh()生成网格图;
五、三维曲面图:
首先三维曲面图和三维网格图不同,其区别有:
(1)网线图:线条有颜色,内部是无颜色
(2)曲面图:线条是黑色的,内部有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化)
  
 
1、使用peak()函数:
为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:
z = *(-x).^.*exp(-(x.^) - (y+).^) ... - *(x/ - x.^ - y.^).*exp(-x.^-y.^) ... - /*exp(-(x+).^ - y.^)
2、surfc()函数:
[X,Y,Z]=peaks(2);
surfc(X,Y,Z)
上述脚本先调用peaks()函数,再使用surfc()函数便可得出下列图形:

3、colormap()函数:
matlab 的颜色数据集合为红、绿、蓝三颜色矩阵 [R,G,B],维数m×3,R,G,B在[0 1]区间连续取值,理论上颜色种类可达无穷多种,然后我们使用colormap()就可以设置图像颜色,如colormap([0.5 0.7 0.8]),当然,matlab也有常用颜色数据,见下表:
- jet —— 饱和值色图II
 - hsv —— 饱和值色图
 - gray —— 线性灰度色图
 - hot —— 暖色色图
 - cool —— 冷色色图
 - bone —— 兰色调灰色图
 - copper —— 铜色色图
 - pink —— 粉红色图
 - prism —— 光谱色图
 - flag —— 红、白、蓝交替色图
 
如我们调用colormap gray; 就可得到相应的线性灰度色图。
六、图像修饰方法:
1、shading:
我们可以使用colormap()函数进行颜色的修饰,还可以使用shading来控制表面和块等图形对象颜色的渲染:
[X,Y,Z]=sphere();
surfc(X,Y,Z)
colormap cool
shading interp
axis equal
上述脚本中,我们画了一个球:

shading有多种选项,常用为:faceted / flat / interp, 等等。
//To Be Continued.
Matlab学习笔记(一)—— 三维图形绘制的更多相关文章
- Matlab绘图基础——其他三维图形(绘制填充的五角星)
		
其他三维图形 %绘制魔方阵的三维条形图 subplot(2,2,1); bar3(magic(4)); %以三维杆图形式绘制曲线y=2sin(x) subplot(2,2,2); y=2*sin( ...
 - Matlab学习笔记 figure函数
		
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
 - matlab学习笔记 bsxfun函数
		
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
 - matlab学习笔记(一)单元数组
		
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
 - matlab学习笔记---(1)
		
Matlab学习笔记 一. Desktop Basics (Matlab 基础知识) 当你打开Matlab的时候,matlab按照以下默认的方式展示出来. 该桌面主要包括以下几部分内容: 当前文件夹: ...
 - 【数学建模】MATLAB学习笔记——函数式文件
		
MATLAB学习笔记——函数式文件 引入函数式文件 说明: 函数式文件主要用于解决计算中的参数传递和函数调用的问题. 函数式的标志是它的第一行为function语句. 函数式文件可以有返回值,也可以没 ...
 - matlab学习笔记8 基本绘图命令-特殊图形绘制
		
一起来学matlab-matlab学习笔记8 基本绘图命令_3 特殊图形绘制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等 ...
 - matlab学习笔记之五种常见的图形绘制功能
		
分类: 离散数据图形绘制 函数图形绘制 网格图形绘制 曲面图形绘制 特殊图形绘制 本文重点介绍matlab五种图形绘制方法的后三种. 一.网格图形绘制 以绘制函数z=f(x,y)三维网格图为例,下面为 ...
 - matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
		
一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 < ...
 - matlab学习笔记8 基本绘图命令-三维绘图
		
一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 ...
 
随机推荐
- python高级之装饰器
			
python高级之装饰器 本节内容 高阶函数 嵌套函数及闭包 装饰器 装饰器带参数 装饰器的嵌套 functools.wraps模块 递归函数被装饰 1.高阶函数 高阶函数的定义: 满足下面两个条件之 ...
 - HTML5入门(---------------HTML——基本骨架--------------)
			
HTML基础 一.HTML 超文本标记语言.英文全拼:HyperText Markup Language.负责网页的语义描述. 二.HTML基本骨架 <!DOCTYPE html> < ...
 - 初学C#和MVC的一些心得,弯路,总结,还有教训(3)--Dapper
			
经过一番深思熟虑,决定先用Dapper吧..... 以下是我感觉比较有用的一些东西 Dapper项目地址 https://github.com/StackExchange/dapper-dot-ne ...
 - caffe的python接口学习(4):mnist实例---手写数字识别
			
深度学习的第一个实例一般都是mnist,只要这个例子完全弄懂了,其它的就是举一反三的事了.由于篇幅原因,本文不具体介绍配置文件里面每个参数的具体函义,如果想弄明白的,请参看我以前的博文: 数据层及参数 ...
 - 详解mysql int类型的长度值问题【转】
			
mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允 ...
 - IE下a标签后面的span元素向右浮动后错位
			
错误原因span放在了a标签之后 正确写法是放在之前 如下: <li><span>2016-07-29</span><a href="#" ...
 - mac下 tomcat8+jdk1.8+servlet+Spring环境搭建中的问题
			
1,jdk1.8里面自带了servlet-api.jar tomcat里面也有这个,会导致冲突发生.出现这个问题会在控制台输出一大堆警告和错误,我一个一个去查(有的错误是表象不是核心)最后在stack ...
 - 解决:sudo: 无法解析主机:dinphy-500-310cn: 连接超时
			
出现这种问题是hosts文件没有配置好所导致的,linux无法解析到您的主机地址,解决方案如下: sudo vim /etc/hosts 其中vim是你的文本编辑器的命令,你如果电脑中没有vim,用g ...
 - C#汉字转拼音帮助类
			
using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressi ...
 - check fasta format
			
reference: https://www.biostars.org/p/42126/ fasta.y %{ #include <stdio.h> #include <stdlib ...