1.要查看matlab的函数的m文件,可在Command Window中输入edit,再输入函数名。
2.prod用于计算数组元素的连乘。
3.应用FDATool设置完滤波器之后,可将其输出为函数:File-->Generate MATLAB
Code-->Filter Design Function
4.xtick是刻度(小竖线);xticklabel 刻度值(竖线下面的数值)。
5.numel(X)可用于计算数组元素的个数。
6.colormap默认是Jet即大值为红,小值为蓝色;应用此命令:map=colormap(flipud(jet))可实现大值为蓝,小值为红
7.roundn可根据四舍五入控制小数位数,如roundn(2.3456,-2)=2.35。
8.trapz(X,Y)可直接计算梯形面积积分。
9.若要查找二维矩阵A的最小值A_min,可通过两次min命令:A_min=min(min(A));可应用find命令查找最值的位置:[row,col]=find(A==A_min)。
10.用plot3/mesh/surf作图时,注意X/Y与Z要对应,根据操作可能要将Z转置。当点过密时,surf所得到的图会发黑,改用mesh则不会发生这类问题。
11.assignin(WS,'varname',varvalue)可用于将函数空间的变量值输出。当WS为‘base’时,表示基本工作空间;当WS为‘caller’时,表示当前回调函数空间。不能将基本工作空间的变量指派到函数空间。evalin与之相反。
12.查询某名称是否为关键字,可用函数iskeyword,e.g. iskeyword('if'),返回结果ans=1.
13.whos可列出当前工作空间中所有变量,以及它们的名字、尺寸(比如一个矩阵或数组的行列维数)、所占字节数、属性等信息。
13.&和|为元素运算,可对向量进行逻辑运算;而&&和||为捷径运算,仅对标量进行逻辑运算。捷径运算首先判断第一个元素对象,若可知道结果则直接返回,不再对第二个元素进行判断。可提高运行速度。
14.MATLAB中,字符和字符串都是用单引号标识而没有用双引号,这种表示方法会引发一个问题:'\n'到底是一个包含两个字符的字符串,还是转义字符(换行符)呢?'\n'只有在格式化输出时,才表示为转义字符,转义字符只有在格式化输出时才有效。
15.str2num与str2double都可将字符串转换为数值,但str2num为矩阵运算,可生成数值矩阵;而str2double为标量运算,只能生成一个数值。另外,str2double的运算速度更快一些。
16.dec2base(d,base,n)可将非负整数d转换为指定的进制格式,base为2与36之间的整数,n为生成字符串的最少位数,高位补0.其中dec表示的十进制为整型数字,其余进制为字符型数字。dec2bin,dec2hex为整型变为字符型,bin2dec,hex2dec为字符型变为整型。
17.celldisp(C)可用于显示单元数组中的内容。
18.使用zeros或ones函数为矩阵预分配内存,可加快程序的执行。重复扩展数组的尺寸,会影响程序的性能。因为每增加一次数组的尺寸,会花费更多的时间分配内存,而且这些内存很可能是不连续的,这将减慢对该数组的任何操作。
19.重塑矩阵为一个列向量,可以采用“:”来实现,e.g.a=eye(2);b=a(:) 则b=[1;0;0;1].
20.reshape(A,...,[],...):应用reshape时,可将某一维长度设为空[],其长度会自动计算。
21.pwd可用于获取当前工作路径。
22.double可将字符转换为对应的Unicode码,e.g.double('a+1') ans=[97 43 49]
23.将矩阵中所有的1变为0:a(a==1)=0;将所有NaN变为0:b(isnan(b))=0.
24.switch中尽量包含otherwise条件语句,以免出现不可预知的错误。
25.strtok用于在字符串中找出第一个标记,可提取字符串中的特定部分。
26.fclose可关闭文件,是文件标识符无效,但不能从工作空间清除文件标识符变量fid。若清除可:clear fid
27.fid=1或2时,舒服直接将数据输出到命令行,不需要fopen打开,也不创建新文件。
28.格式字符串中的*用于跳过一个匹配值,例如%*d读到的一个十进制整数被忽略,不存入矩阵。
29.upper用于将字符串的字母转为大写,lower用于将字符串的字母转为小写。
30.在应用plot时,若不进行连线绘图,只是描述离散的数据点,可设置曲线线型为none。
31.只有text对象才能输出Tex字符,text对象可通过title、xlabel、ylabel、zlabel和text函数创建。设置Tex字符的字体、颜色、位置时,要将待显示的字符串放在字符设置之后。
32.flipud(u)实现矩阵的上下翻转,fliplr(p)实现矩阵的左右翻转,可应用这两个命令对数据作倒序操作。
33.为MATLAB添加背景图片:建立Axes,调整大小;右击-->View Callbacks-->Create
Fcn;在函数区填写下面代码:axes(hObject);imshow('filename.jpg')。注意文件路径。若根对象的ShowHiddenHandles值为off且当前坐标轴的HandleVisibility为off时,则应改为:imshow('filename.jpg','parent',hObject)。创建了image的坐标轴的原点不再位于左下角,而是左上角且Y轴为向下延伸。若要将原点移到左下角,需执行以下语句:set(hObject,'YDir','normal');或set(hObject,'YDir','default')。若要在一个坐标轴内显示多张图片,需要手动设置坐标轴的坐标范围(可用axis设置),并设置坐标轴对象的NextPlot属性值为'add'。
34.通过fplot函数可直接在命令行中输入命令并作图。e.g.fplot('x+10*sin(5*x)+7*cos(4*x)',[0,9])
; fplot(@(x)[tan(x),sin(x),cos(x)], 2*pi*[-1 1 -1 1]).
35.[LO_D,HO_D,LO_R,HO_R]=wfilters('wname')可求解正交小波滤波器系数.
36.wnoisest用于估计一维小波细节系数的标准差,方法为系数的绝命中位差除以0.6745,这适用于零均值高斯白噪声的去噪。
37.在GUI中要使一个变量变成全局变量,可将其存于handles结构体中。如将变量a存入handles中:
handles.a=a;
guidata(hObject,handles);
若要获取该变量值,则:a=handles.a.
38.num2str(x,n) or num2str(x,format)可控制输出字符的精度或格式。
39.在GUI控件中,当Max-Min>1时,edit
text可输入多行文字,listbox可进行多选。注:popmenu无法多选。
40.all:检测矩阵中是否全为非零元素,是则返回1,否则返回0.
any:检测矩阵中是否有非零元素,有则返回1,否则返回0.可用于设置条件,e.g.if
all(a<0.5)...可根据a中元素是否全小于0.5而执行相应操作。s1='a';s2={'a','b','c'};any(strcmp(s1,s2))可用于判断s2中是否存在s1.
41.%
strcmp 比较两个字符串是否完全相等,是,返回真,否则,返回假
%
strncmp 比较两个字符串前n个字符是否相等,是,返回真,否则,返回假
%
strcmpi 比较两个字符串是否完全相等,忽略字母大小写
%
strncmpi 比较两个字符串前n个字符是否相等,忽略字母大小写
42.若a为矩阵,则min(a)求得a中每一列的最小值,min(a,[],2)求得每一行的最小值,min(a,2)求得a中每一个元素与2相比的较小值。
43.phase 和 angle 在输入为单个标量数据时,没有差别,二者都是用 atan2
函数来求输入数据的四象限辐角。但是对于向量或矩阵数据输入时,二者差别非常大。phase
只支持标量和一维(行、列)向量输入,不支持二维或高维矩阵输入。angle 可以支持标量或任意维数矩阵输入。对于向量输入,phase
会对输出结果做判断,如果相邻两个输出角度的差的绝对值超过 3.5,phase
会对其重新处理,确保相邻两个角度差值的绝对值永远不超过3.5。而 angle
函数对每个数据独立求其辐角,不会因为相邻角度差超出某个数值而做特殊处理。所以,从这个意义上讲,angle
函数是我们通常需要使用的求角度的函数,而 phase 的特殊处理,会导致得出与angle不同的结果。
44.若存在一单调序列a,现需找出数值b与a中哪一值最为接近,可用如下命令:[~,I]=min(abs(a(:)-b));I
即为最为接近的a的序号。
45.若要更改GUI界面左上角的figure名称,可在程序的OpeningFcn函数中加入这么一句命令:set(gcf,'numbertitle','off','name','Task').Task即为更改后的名称,可以是汉字。
46.Matlab定义的NaN常数能够用于表示那些不可使用的数据,利用这些特性,能够将图形中须要裁剪部分相应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的
47.Y=zscore(X)根据序列X的均值和标准差对其进行标准化,Y=(X-mean(X))/STD(X).
48.若要使pushbutton按钮的文字竖排显示,可双击pushbutton的按钮,在属性查看(property
inspector)的string里面输入
,即竖向显示“开始索引”。
49.应用strcat时,有时需要在两个字符串之间加入特殊操作,比如回车{13},空格{32},换行{10}等,这个时候只需在两个字符串之间输入这些特殊要求的askii码
即可。e.g.a=‘2016/05/20';b='12:30:11';strcat(a,{32},b)的结果:'2016/05/20
12:30:11'。注意:如果a,b是cell数组,则将ASCII码用{}括起来,否则无需{}。
50.将GUI背景图片设置为与窗口同样大小,可在axes的CreatFcn下直接复制如下代码,修改图片名称,并将图片与程序放在一起:
h=axes('units','normalized','position',[0,0,1,1]);
uistack(h,'up');
i=imread('背景.jpg');
image(i);
set(h,'handlevisibility','off','visible','off');
51.在GUI中,当产生图片时,若要关闭出GUI软件界面之外的所有图片,可应用如下命令:
close(setdiff(findobj('menubar','figure','-or','menubar','none'),gcf))
193

被折叠的 条评论
为什么被折叠?



