1.image:这个函数,直接把矩阵中的数当做索引值(我称为直接映射)

imagesc: 与image不同的是imagesc采用的不是直接映射而是线性映射,至于什么是线性映射,我粗略的说一下,比如把区间A = [0,a]映射到区间B = [0,b]我们对A中的元素做A/a*b就可以了,矩阵的数到colormap索引的线性映射大概就是这样,Matlab会自动获取矩阵中数的最小值和最大值,并把区间[Cmin,Cmax]映射到colormap的[最小索引,最大索引]比如[1,64],然后再根据这个对应关系把图像显示出来,具体的算法细节是Matlab确定的,当然也可以自己指定显示范围,比如一副索引图像I范围为[27,218],而我只想显示[1 64 ],使用命令imagesc(I,[1 64])就可以了,如果你把上面程序中的imagesc(I)换成imagesc(I,[1,64]),那么figure2中的效果就和figure1中一样了,因为只是把[1,64]这个范围映射到色图,超过的都被认为是64。

imshow:调用这个函数会把当前figure的colormap设置成gray(256),这个前面也有提到,我们先讨论矩阵元素是uint8型(范围:0~255,整数,一般使用imread和 rgb2gray返回的都是uint8型的),同样我们也要搞明白矩阵中的数和colormap中颜色索引的对应关系,imshow的功能是比较全的,它即可使用像image那样的直接映射,也可使用像imagesc那样的线性映射,当我们使用imshow(I),即只有一个矩阵作为参数,这时采用的是直接映射,比如矩阵中元素0就显示成colormap中索引为1的颜色也就是黑色,矩阵中元素255就显示成colormap中索引为256的颜色也就是白色,(注意:uint8范围是0~255,而gray(256)的索引是1:256,当然这些我们只要了解就可以了,编程并不会用到,因为这些对应的细节Matlab已经帮我们做好了)如果这样调用imshow(I,[ ]),此时矩阵中的数和颜色表就是线性映射,为什么会这样,我解释一下,我们看这种调用方式和imagesc(I,[1 64])很相似,其实原理是一样的,第二个参数是一个向量,这个向量指定了矩阵中映射到颜色表的数的范围,也就是显示范围(Matlab里叫做display range)前面已经介绍了,Matlab中imshow的help中说如果采用imshow(I,[low high])调用imshow的话而且你用[ ]代替[low high]那么imshow会使用[min(I(:)) max(I(:))]作为显示范围,也就说I中的最小值会显示成黑色,最大值会显示成白色,这其实就是整个范围的线性映射(没有削顶也没有削底),此时的imshow(I,[ ])函数就相当于imagesc(I);

 

2.转置向量或矩阵

B = A.' 返回 A 的非共轭转置,即每个元素的行和列索引都会互换。如果 A 包含复数元素,则 A.' 不会影响虚部符号。例如,如果 A(3,2) 是 1+2i 且 B = A.',则元素 B(2,3)也是 1+2i

B = transpose(A) 是执行 A.' 的另一种方式,它可以为类启用运算符重载。

 

3.camlight的目的:创建或者移动在camera coordinates里的光源,主要有一下几种用法:

camlight('headlight') %在camera的位置创建一个光源
 camlight('right') %在右上方,下面类似
 camlight('left')
 camlight
 camlight(az,el)
 camlight(...,'style')
 camlight(light_handle,...)
 light_handle = camlight(...)

colormap 是一种颜色映射,1-gray是颜色列表,函数的调用形式为:colormap(map)
其中map是由m个三原色向量构成,相应的参数还有:
hot暖色 cool冷色 jet hsv spring 等等。

 

4.axis equal是matlab函数图象很多时候为了把x和y的信息都表达得充分明显,会使x轴单位的实际长度和y轴单位的实际长度不一样。

有利作用:比如说,y=0.00001*sin(x),系统就会自动拉长y轴来放大变化,方便我们看得清图象的函数变化。axis equal就是取消这种变化。把单位长度都变的一样。这样做的好处就是对于圆来说更像圆,

弊端:但是对于一些变化很微小的函数就不是很直观,例如y=0.00000001* sin(x)看起来就有点像一条直线了

 

5. shading faceted:默认模式,在曲面或图形对象上叠加黑色的网格线;

shading flat:是在shading faceted的基础上去掉图上的网格线;

shading interp:对曲面或图形对象的颜色着色进行色彩的插值处理,使色彩平滑过渡 ;

6. surfc(X,Y,Z) — 带等高线的曲面图
[X,Y,Z]=peaks(30);surfc(X,Y,Z)
 surfl(X,Y,Z) —— 被光照射带阴影的曲面图
[X,Y,Z]=peaks(30);surfl(X,Y,Z)
 cylinde(r,n) — 三维柱面绘图函数
r 为半径;n为柱面圆周等分数