1.点击ctrl+R,注释程序;可多次点击,多次注释同一次选中的代码;
点击ctrl+T,取消注释程序。
2.f(:,1)表示选中矩阵f的第一列的全部元素。
a:b表示在该维(Dimension,行或列等)选中从a到b的元素,如果只有一个冒号,就代表全部选中。
比如f(3:5,1)代表选中f第一列的第三个到第五个元素。
3.zeros函数——生成零矩阵
ones函数——生成全1阵
【zeros的使用方法】
B=zeros(n):生成n×n全零阵。
B=zeros(m,n):生成m×n全零阵。
B=zeros([m n]):生成m×n全零阵。
B=zeros(d1,d2,d3……):生成d1×d2×d3×……全零阵或数组。
B=zeros([d1 d2 d3……]):生成d1×d2×d3×……全零阵或数组。
B=zeros(size(A)):生成与矩阵A相同大小的全零阵。
【ones的使用方法】
ones的使用方法与zeros的使用方法类似。
4.指令for i=1:1:100与for i=1:100完全一样,步长为1的循环。
5.MATLAB中的round函数
调用格式:Y = round(X) 在matlab中round也是一个四舍五入函数。在matlab的命令窗口中输入doc round或者helpround即可获得该函数的相关帮助信息。
6.axis OFF
关闭所用坐标轴上的标记、格栅和单位标记。但保留由text和gtext设置的对象
axis ON
显示坐标轴上的标记、单位和格栅。
7.
xlabel('正弦函数')
8.MATLAB中gcf、gca、gco的区别
http://wenku.baidu.com/link?url=YFQL9yqtan1sR4vCmTQ3wgCDMICjK2O05EUdnk4yxyustakl_PNWI6IPovR_D5RekbUkbMKQ7-RiVDY2u9ToV4iF99SdHbsrjKTg3W22dLe 具体解析
图形对象gcf 返回当前Figure对象的句柄值
gca返回当前d句柄值
gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的 任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中
Axes对象的属性
(1)title('new','color','r');给坐标轴命名为new,红色
title({'this title','has 2 '});命名为两行的标题
(2)Units:有效值为pixels/normalized/inches /centimeters/points/characters
决定各种位置属性的度量单位,相对于窗口左下角为基准。当设置为Pixels时, 以像素为单位;当设置为normalized时,以坐标为单位,屏幕的左下角为[0,0],右上角为[1.0,1.0]。
(3)grid on:在图像中显示网格。
(4)children:控制axes对象的子对象,即image\light\line\patch \rectangle\surface和text等对象,可通过get(gca,'children')来返回当前坐标轴的子对象构成的句柄值向量。
(5) 字体属性:
Fontangle字体角度(正常normal或斜体italic/oblique)
Fontname字体名称
fontsize 字体大小(单位由Fontunits决定)
fontunits字体单位(points/normalized/inches /centimeters/pixels)
fontweight字体粗细(normal/bold/light/demi)
gridlinestyle 决定坐标轴网格线的样式,‘-’为实线‘- -’为虚线‘:’为点线‘-.’为点虚线
plot(1:10);grid on;set(gca,'gridlinestyle','-.');将当前坐标轴显示的网格线为点-虚线
(6)linewidth 定义X,Y和Z轴的轴线宽度(以点单位定义)
(7)NextPlot:有效值为add|replace|replacechildren,默认为 replace
add表示使用当前的坐标轴,把新的图形对象加到此坐标轴中是一般保留的做法,replace表示重新设置坐标轴的所有属性 (Position除外),也就是在绘图前会删除当前坐标轴和它的子对象。replacechildren表示移除当前坐标轴中所有子对象,但不重新设置 坐标轴的所有属性
(8)Outerposition决定坐标轴外边界的位置。由位置向量[left,bottom,width,height]组 成,其中left,bottom表示相对于绘图窗口左下角的位置,width,height表示区域尺寸,默认为[0 0 1 1]
(9)Position 由位置向量[left,bottom,width,height]组成,决定坐标轴位置
(10)Tag定义本坐标轴的卷展栏,因为每一个对象都有 自己唯一的识别码即tag,以方便findobj函数查找坐标轴句柄值。
(11)visible决定坐标轴是否可见
(12)set(gca,'xgrid','on') 绘制X轴垂直网格线
set(gca,'gridlinestyle',':','linewidth',3)设置网格线线条类型和宽度
set(gca,'box','on') 将图轴方框绘制出来
set(gca,'xscale','linear');将X轴刻度设为线性
set(gca,'yscale','log'); 将Y轴刻度设为对数
(14)disp()显示一个数组,但不显示其数组名称
(15.)tic,toc测量函数的执行时间;单位为秒;
(16).uint16的范围是0-65535,uint8的范围是0-255。
matlab提供强制转换为uint8的函数即uint8(number)。
但这个函数的做法是把大于255的数全部强制置为255,而小于255的部分则保持原样不变。
若希望将0-65535的灰度级映射到0-255上,则可采用以下的办法:
uint8(double(number)/65535*255)
17.转置 a(:)作用是把矩阵a转换为列向量,就是一列,你可以试一下。
至于.'是一般转置的意思,这个你显然知道。
综合上面两个可知a(:).'是把矩阵a转换为一个行向量,就是一行。
补充:'是共轭转置的意思。当矩阵a是实矩阵时,他和.'作用是一样的,但当a是复矩阵时,二者是有区别的,具体可参见下面这个链接。
(18.)ind2sub该函数用于把数组中元素索引值转换为该元素在数组中对应的下标
[I,J] = ind2sub(size,IND)
这种调用格式适用于二维数组,其中siz是数组的尺寸,通常通过调用size函数获取。IND则是索引值,返回值为索引值为IND的元素在该二维数组内的行列下标。
[I1,I2,I3,...,In] = ind2sub(siz,IND)
这种调用格式适用于多维情况。
[I,J] = ind2sub(siz,IND)
这种调用格式适用于二维数组,其中siz是数组的尺寸,通常通过调用size函数获取。IND则是索引值,返回值为索引值为IND的元素在该二维数组内的行列下标。
[I1,I2,I3,...,In] = ind2sub(siz,IND)
这种调用格式适用于多维情况。
这种调用格式适用于二维数组,其中siz是数组的尺寸,通常通过调用size函数获取。IND则是索引值,返回值为索引值为IND的元素在该二维数组内的行列下标。
[I1,I2,I3,...,In] = ind2sub(siz,IND)
这种调用格式适用于多维情况。
20.在matlab中[y ind]=sort(X)什么意思啊
>> A=[8 5 7 3 9 1 7];
>> [a i]=sort(A)
a =
1 3 5 7 7 8 9
i =
6 4 2 3 7 1 5
21.size函数的用法
22.若x=【1,2,3;4,5,6】,那x(:,1)=[1;4],x(1,:)=[1,2,3],x(1,:)是取某一行
23.meshgrid是MATLAB中用于生成网格采样点的函数。
https://jingyan.baidu.com/article/d2b1d1029f82bb5c7f37d45d.html
24.MATLAB制作切片图主要用到slice命令
https://jingyan.baidu.com/article/b7001fe1add7dc0e7382dd61.html
25.colormap在利用matlab绘图时,颜色的设置显得异常重要,优秀的colorbar能让读者对图片所想展示的信息一目了然。而在使用colormap()函数时,matlab已经内置了集中色彩模式包括jet,hsv,hot,cool,spring,summer,autumn,winter,gray,bone,copper,pink以及lines等13中模式,但是使用这些内置模式也许不能满足你的心意,那么可以根据自己的意愿对颜色进行修改,
https://jingyan.baidu.com/article/9158e00039cfada25512287b.html
26.matlab函数——shading函数
是阴影函数控制曲面和图形对象的颜色着色,即用来处理色彩效果的,包括以下三种形式:
shading faceted:默认模式,在曲面或图形对象上叠加黑色的网格线;
shading flat:是在shading faceted的基础上去掉图上的网格线;
shading interp:对曲面或图形对象的颜色着色进行色彩的插值处理,使色彩平滑过渡 ;
27.axis相关的几条常用命令还有:
axis auto 自动模式,使得图形的坐标范围满足图中一切图元素
axis equal 严格控制各坐标的分度使其相等
axis square 使绘图区为正方形
axis on 恢复对坐标轴的一切设置
axis off 取消对坐标轴的一切设置
axis manual 以当前的坐标限制图形的绘制
28.find()函数的所有用法:
1、 b=find(a),a是一个矩阵,查询非零元素的位置,如果X是一个行向量,则返回一个行向量,否则,返回一个列向量。如果X全是零元素或者是空数组,则返回一个空数组,例子如下所示,也可以用b=find(a>2),这句的意思是在a中找到比较2大的元素;
2、b=find(a,2),找出a中最先出现的2个不为零的数,a是你所要找的矩阵,2参数是指数量;
3.3、c=find(a,2,'first'),用法和上例基本一样;
https://zhidao.baidu.com/question/178286906.html
29.floor函数:朝负无穷大方向取整
2、用法说明:
y = floor(x) 函数将x中元素取整,值y为不大于本身的最小整数。对于复数,分别对实部和虚部取整
3、用法举例
30.ceil-向正无穷大方向取整。
ceil Round towards plus infinity.
ceil(X) rounds the elements of X to the nearest integers
towards infinity.
31.sort函数
给数列a从小到大排列,找前几个最大的。如下:[b,i]=sort(a)。b为从小到大的数字,i为对应位置。要找前3个,如下输入:>> a=[3,15,6,21,18,2,18,19,1,4,7,29, 21 ,23 ,29 ,23, 14, 6, 9 ,29 ,31];
>> [b,i]=sort(a)
b = Columns 1 through 12 1 2 3 4 6 6 7 9 14 15 18 18
Columns 13 through 21 19 21 21 23 23 29 29 29 31
i = Columns 1 through 12 9 6 1 10 3 18 11 19 17 2 5 7
Columns 13 through 21 8 4 13 14 16 12 15 20 21
>> b(19:21)
ans = 29 29 31
>> i(19:21)
ans = 15 20 21
32.索引无法生成多个结果。一般是前面的变量名重复了。
sort(A)若A是向量不管是列还是行向量,默认都是对A进行升序排列。sort(A)是默认的升序,而sort(A,'descend')是降序排序。
sort(A)若A是矩阵,默认对A的各列进行升序排列
sort(A,dim)
dim=1时等效sort(A)
dim=2时表示对A中的各行元素升序排列
看下面的例子
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> sort(A)
ans =
3 1 2
4 5 6
8 9 7
>> sort(A,1)
ans =
3 1 2
4 5 6
8 9 7
>> sort(A,2)
ans =
1 6 8
3 5 7
2 4 9
===================
Matlab中给一维向量排序是使用sort函数:sort(A),排序是按升序进行的,其中A为待排序的向量;若欲保留排列前的索引,则可用 [sA,index] = sort(A) ,排序后,sA是排序好的向量,index 是 向量sA 中对 A 的索引。 索引使排列逆运算成为可能。
事实上,这里A ≡sA(index) , [A恒等于sA(index)],这个结论确实很奇妙,而且很有用。不信你排序之后试下键入命令sA(index) ,看看得到的是不是就是排列前的A呢。
=====================
在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可,如 果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A中 项的索引。排序是安升序进行的。
在Matlab中,访问矩阵中的元素,一维用A(1)访问向量A的第一个元素;(下标从1开始);二维用A(1,2)访问A中第一行,第二列的元素。
由于在sort函数的结果中,是安升序排序的,要转换成降序,先用X=eye(n)生成一个n维的单位阵,然后用X=rot90(X)将其旋转为次对角线的单位阵,再用原来矩阵乘以X即可,如要讲A逆序排列采用如下步骤:
X=eye(size(A));
X=rot90(X);
A=A*X;
假如a是一个2*n的矩阵,即两行.
b=a(1,:);
[c,pos]=sort(b);%pos为排序后的下标,c为第一行的排序结果;
a(2,:)=a(2,pos);%第二行按照第一行排序的下标对应
a(1,:)=c;%第一行结果重新赋给a 的第一行
以下适用于m*n的矩阵按第一行排序
[ b, pos ] = sort( a( 1, : ) );
a = a( :, pos );
=======================
matlab按某一列排序,其他列不变办法
b=sortrows(a,2) %a 为要排序的矩阵。2表示按第几列进行排序,整数代表升序,负数代表降序。
%将矩阵a按照第2列的升序排列,其他列不会作升序排列,而是将跟随着第2列 的变化,保持一一对应。
b=sortrows(a,-3)
%将矩阵a按照第3列的降序排列,其他列将跟随着第3列 的变化,保持一一对应。
data =
1 3 2
7 6 5
4 9 8
sortrows(data,1)
ans =
1 3 2
4 9 8
7 6 5
sortrows(data,-1)
ans =
7 6 5
4 9 8
1 3 2
Example 1
Sort horizontal vector A:
A = [78 23 10 100 45 5 6];
sort(A)
ans =
5 6 10 23 45 78 100
Example 2
Sort matrix A in each dimension:
A = [ 3 7 5
0 4 2 ];
sort(A,1)
ans =
0 4 2
3 7 5
sort(A,2)
ans =
3 5 7
0 2 4
Sort it again, this time returning an array of indices for theresult:
[B, IX] = sort(A, 2)
B =
3 5 7
0 2 4
IX =
1 3 2
1 3 2
Example 3
Sort each column of matrix A in descendingorder:
A = [ 3 7 5
6 8 3
0 4 2 ];
sort(A,1,'descend')
ans =
6 8 5
3 7 3
0 4 2
This is equivalent to
sort(A,'descend')
ans =
6 8 5
3 7 3
0 4 2
网友评论