MATLAB实用教程(第三版)(郑阿奇)学习笔记Felix电子技术应用AET中国科技核心期刊

1.1.1、saveFileName变量1变量2…参数

|-将工作空间中的数据存放到MAT数据文件

|-变量1、变量2可以省略,省略时则保存工作空间的所有变量;参数为保存的方式,有-ASCII、-append等方式。

1.1.2、loadFileName变量1变量2…

|-从数据文件中取出变量存放到工作空间

|-变量1、变量2可以省略,省略时装载所有的变量。

1.1.3、who

|-查阅MATLAB内存变量名(工作空间中的变量)。

1.1.4、whos

|-查阅MATLAB内存变量名(工作空间中的变量)、大小、类型和字节数。

1.1.5、clear变量名1变量名2…

|-删除工作空间中的变量

|-变量名1、变量名2可以省略,省略时删除所有的变量。

1.1.6、i=exist(‘X’)

|-查询工作空间中是否存在某个变量

|-i=1:表示存在一个变量名为‘X’的变量;

|-i=2:表示存在一个名为‘X.m’的文件;

|-i=3:表示存在一个名为‘X.mex’的文件;

|-i=4:表示存在一个名为‘X.mdl’文件;

|-i=5:表示存在一个名为‘X’的内部函数;

|-i=0:表示不存在以上的变量或者文件。

1.2、帮助指令

1.2.1、helptopic

|-显示MATLAB命令和M文件的帮助信息

1.2.2、lookfortopic参数

|-在所有的帮助条目中搜索关键字,常用来查找具有某种功能而不知道准确名字的命令

|-当参数为‘-all’时,则在所有的M文件中搜索关键字。

1.2.3、doctopic

|-打开并显示帮助窗口。

1.3、文件管理命令

1.3.1、what

|-列出当前目录下的M、MAT、MEX文件清单。

1.3.2、dir文件名

|-显示指定M文件的内容。

1.3.3、which文件名

|-指出M文件、MEX文件、MAT文件、工作空间向量、内置函数或Simulink模型所在的目录。

1.3.4、matlabroot

|-返回安装MATLAB的根目录。

2、MATLAB数值计算

2.1、数据类型

2.1.1、整型:8种,分别为uint8、uint16、uint32、uint64、int8、int16、int32、int64。

2.1.2、浮点型:2中,分别为single、double。

2.1.3、字符型:使用‘’括起来,使用ASCII码形式存放,每个字符占2个字节。

2.1.4、逻辑型:表示true(1)和false(0),每个逻辑型数据占1个字节。

2.1.5、复数:使用i和j表示需要虚数单位:

|-real:计算实部;

|-imag:计算虚部;

|-abs:计算幅值;

|-angle:计算相角。

2.1.6、特殊变量:

|-ans:默认的运算结果变量名;

|-pi:圆周率;

|-eps:计算机的最小数;

|-flops:浮点运算数;

|-inf:无穷大,如1/0;

|-Nan或者nan:非数,如0/0、∞/∞、0×∞;

|-i或者j:虚数;

|-nargin:函数的输入变量数目;

|-nargout:函数的输出变量数目;

|-realmin:最小的可用正实数;

|-realmax:最大的可用正实数。

2.2、矩阵输入

2.2.1、from:step:to

|-from、step和to分别表示开始值、步长和结束值。当step省略时默认为step=1。

2.2.2、linspace(a,b,n)

|-用来生产线性等分向量

|-a、b、n分别表示开始值、结束值和元素个数,如果n省略则默认为100。

2.2.3、logspace(a,b,n)

|-用来生成对数等分向量

|-a、b、n分别表示开始值、结束值和元素个数,如果n省略则默认为50。

2.3、特殊矩阵

2.3.1、zeros(m,n)

|-产生m×n的全0矩阵,只有一个参数时,产生方阵

2.3.2、ones(m,n)

|-产生m×n的全1矩阵,只有一个参数时,产生方阵

2.3.3、rand(m,n)

|-产生均匀分布的随机矩阵,元素取值范围为0.0-1.0,只有一个参数时,产生方阵

2.3.4、randn(m,n)

|-产生正态分布的随机矩阵,只有一个参数时,产生方阵

2.3.5、magic(n)

|-产生n阶魔方矩阵(矩阵的行、列和对角线上的元素之和相等)

2.3.6、eye(m,n)

|-产生m×n的单位矩阵,只有一个参数时,产生方阵

2.3.7、true(m,n)、false(m,n)

|-产生逻辑矩阵,分别全为true和false,只有一个参数时,产生方阵

2.4、矩阵元素

2.4.1、矩阵的全下标表示法:

|-即由行下标和列下标表示。

2.4.2、矩阵的单下标表示法:

|-就是把矩阵的所有列按先左后右的次序连接成“一维长列”,然后对元素进行编号。

2.5、子矩阵的产生方式

2.5.1、a([13],[23])

|-取出行数为1、3,列数为2、3的元素构成子矩阵

2.5.2、a(1:3,2:3)

|-取出行数为1-3,列数为2-3的元素构成子矩阵

2.5.3、a(:,3)

|-取出所有的行数,列数为3的元素构成子矩阵

2.5.4、a(1:3,end)

|-取出行数为1-3,最后一列的元素构成子矩阵

2.5.5、a([13;26])

|-取出下标为1、3、2、6的元素构成子矩阵

2.5.6、逻辑矩阵产生法

|-逻辑矩阵的大小需和原矩阵相同,取逻辑矩阵不为0的元素对应的元素构成子矩阵

2.6、矩阵的赋值

2.6.1、全下标方式:

|-A(i,j)=B,给A矩阵的部分元素赋值,则B矩阵的行列数必须的等于A矩阵的行列数

2.6.2、单下标方式:

|-A(s)=b,b为向量,元素的个数必须等于A矩阵的元素的个数

2.6.3、全元素方式:

|-A(:)=B,给A矩阵的所有元素赋值则B矩阵的元素总数必须等于A矩阵的元素总数,但行列数不一定相等。

2.6.4、生成大矩阵:

|-通过[]将小矩阵联结起来可以生成一个较大的矩阵

2.7、矩阵的翻转

2.7.1、triu(X)

|-产生X矩阵的上三角矩阵,其余元素补0

2.7.2、tril(X)

|-产生X矩阵的下三角矩阵,其余元素补0

2.7.3、flipud(X)

|-使矩阵X沿水平轴上下翻转

2.7.4、fliplr(X)

|-使矩阵X沿垂直轴左右翻转

2.7.5、flipdim(X,dim)

|-使矩阵X沿特定的轴翻转,dim=1时,按行维翻转dim=2时,按列维翻转

2.7.6、rot90(X)

|-使矩阵X逆时针旋转90°

2.8、字符串函数

2.8.1、length

|-用来计算字符串的长度(即组成字符的个数)

2.8.2、double

|-用来将字符型转化为以ASCII码为数值的double型数据,包括空格(ASCII码为32)

2.8.3、char

|-用来将数值型按照ASCII码转化成字符型,省略小数点后的数据

2.8.4、class或ischar

|-用来判断数据类型是否为字符串

|-class返回char,ischar返回1,则表示为字符串

|-class还可以用于测试其他数据类型

2.8.5、strcmp(x,y)

|-比较字符串x和y的内容是否相同

|-返回值为1表示相同,为0表示不同

2.8.6、findstr(x,x1)

|-寻找在某个长字符串x中的子字符串x1,返回其起始位置

2.8.7、deblank(x)

|-删除字符串末尾的空格

2.8.8、eval(x)

|-执行字符串,可将字符串转换成为数字型

2.8.9、disp(x)

|-显示字符串内容

2.8.10、str2mat、strvcat、char

|-构造字符串矩阵,不必考虑每行的字符数是否相等,总是按照最长的字符串进行设置,不足的字符串的末尾将用空格补齐。

2.9、常用矩阵运算函数

2.9.1、det(x)

|-计算方针的行列式

2.9.2、rank(x)

|-求矩阵的秩

2.9.3、inv(x)

|-求矩阵的逆阵

2.9.4、[v,d]=eig(x)

|-计算矩阵的特征值和特征向量

|-v为特征向量,d为特征值

2.9.5、diag(x)

|-产生x矩阵的对角阵

2.9.6、[l,u]=lu(x)

|-方阵分解为一个准下三角方阵和一个上三角方阵的乘积

2.9.7、[q,r]=qr(x)

|-m×n阶矩阵x分解为一个正交方阵q和一个与x同阶的上三角矩阵r的乘积。

2.10、矩阵和数组的算术运算

2.10.1、加减法

|-矩阵和数组的加减法运算规则一致,必须大小相同才可以相加减

2.10.2、乘法

|-矩阵的乘法A*B,矩阵A的列数必须等于矩阵B的行数

|-数组的乘法A.*B,表示数组A和B中的元素依次相乘

2.10.3、除法

|-A\B是方程A*X=B的解,即A\B=A-1*B

|-A/B是方程X*A=B的解,即A/B=A*B-1

|-A.\B表示数组的左除,即B除A

|-A./B表示数组的右除,即A除B

2.10.4、矩阵的乘方:A^B

|-当A为矩阵时,必须为方阵

|-B为正整数,表示A矩阵自乘B次;

|-B为负整数,表示先将矩阵A求逆,在自乘|B|次,仅对非奇异矩阵成立;

|-B为矩阵时,不能运算,报错;

|-B为非整数,涉及特征值和特征向量的求解,将A分解为A=W*D/W,D为对角阵,则有运算式A^B=W*D^B/W;

|-当A为标量时

|-B为矩阵时,将A分解为将A分解为A=W*D/W,D为对角阵,则有运算式A^B=W*diag(D^B)/W;

2.10.5、数组的乘方:A.^B

|-A为矩阵,B为标量时,将A(i,j)自乘B次;

|-A为矩阵,B为矩阵时,A和B数组必须大小相同,则将A(i,j)自乘B(i,j)次;

|-A为标量,B为矩阵时,将A^B(i,j)构成新矩阵的第i行低j列元素。

2.10.6、转置

|-A’表示矩阵A的转置,如果A为复数矩阵,则为共轭转置

|-A.’表示数组A的转置

2.11、矩阵和数组的数学函数

2.11.1、基本数学函数:分别对每一个元素进行运算

|-sin、cos、tan、asin、acos、atan、atan2、sinh、cosh、tanh、sqrt

2.11.2、abs

|-绝对值或者复数求模函数,也是分别对每一个元素进行运算

|-real、imag

|-conj用于求解复数共轭

2.11.4、近似函数

|-rat:有理数近似

|-round:四舍五入到整数

|-fix:向最接近0取整

|-floor:向最接近-∞取整

|-ceil:向最接近+∞取整

2.11.5、其他常用数学函数

|-sign:符号函数

|-mod:模数求余

|-rem:求余数留数

|-log:以e为底的对数(自然对数)

|-log10:以10为底的对数

|-pow2:2的幂

|-bessel:贝塞尔函数

|-gamma:伽马函数

2.11.6、特殊的矩阵函数

|-expm、logm、sqrtm:均以矩阵为对象操作,而不是操作矩阵中的元素

|-funm(a,‘fun’):a必须为方阵,fun为函数名

|-例如:funm(a,‘sqrt’)等价于sqrtm(a)

2.12、关系运算符与逻辑运算符

2.12.1、关系运算符:

|-关系操作符<、<=和>、>=仅对参加比较变量的实部进行比较,而==和~=同时对实部和虚部进行比较

2.12.2、逻辑运算符:

|-通用型:&、|、~(非)、xor(异或)

|-先决型:&&(先决与)、||(先决或)。只能用于标量的运算。

2.13、常用的关系逻辑函数

2.13.1、all(a)

|-判断a的列向量元素是否全非0,全非0则为1

2.13.2、any(a)

|-判断a的列向量元素中是否有非0的元素,有则为1

2.13.3、isequal(a,b)

|-判断a,b对应元素是否完全相等,相等为1(按全下标方式比较)

2.13.4、isempty(a)

|-判断a是否为空矩阵,为空则为1,否则为0

2.13.5、isfinite(a)

|-判断a的各个元素值是否为有限值,是则为1

2.13.6、isnumeric(a)

|-判断a中的元素是否全为数值型元素,是则为1

2.13.7、isinf(a)

|-判断a的各个元素值是否为无穷大,是则为1

2.13.8、isnan(a)

|-判断a的各个元素值是否为NAN,是则为1

2.13.9、isreal(a)

|-判断a中的元素是否全为实数,是则为1

2.13.10、isprimme(a)

|-判断a中的各个元素值是否为素数(质数),是则为1

2.13.11、isspace(a)

|-判断a中的各个元素是否为空格,是则为1

2.13.12、find(a)

|-寻找a中非0元素的下标(按照单下标方式查找)

2.14、运算符的优先级

2.14.1、运算符的优先级顺序(降序排列)

|-’(矩阵转置)、^(矩阵幂)、.’(数组转置)、.^(数组幂)

|-~(逻辑非)

|-*(乘)、/(左除)、\(右除)、.*(点乘)、./(点左除)、.\(点右除)

|-+(加)、-(减)

|-:(冒号)

|-<、<=、>、>=、~=、==

|-&(逻辑与)

|-|(逻辑或)

|-&&(先决与)

|-||(先决或)

2.15、多维数组

2.15.1、cat(w,p1,p2,…)

|-将一系列的数组沿着特定的维连接成一个多维数组

|-w表示是沿着第几维连接数组p1、p2等

2.15.2、repmat(p,行页列…)

|-按照指定行列放置模块数组生产多维数组

|-p是用来放置的模块数组,后面的变量要放在指定的各维

2.15.3、reshape(p,行页列…)

|-在总元素不变的前提下重新确定数组的行列数来重组数组

|-p是待重组的数组,后面的变量是重新生产的数组的行数、列数和页数

2.15.4、ndims(p)

|-直接给出数组的维数

2.15.5、给出数组各维的大小

|-[m,n,…]=size(p)给出数组各维的大小

|-m=size(p,x)得出某一维的大小

2.15.6、length(p)

|-返回行数或者列数的最大值

|-等价于max(size(p))

2.16.1、日期格式

|-日期字符串:01/01/2007、01-Jan-2007等

|-日期向量:包括6个数字的数组,分表为[yearmonthdayhourminutesecond],日期向量一般不参加运算

2.16.2、日期格式转换

|-datestr:将日期格式转换为字符串格式

|-datenum:将日期格式转换为连续的日期数值格式

|-datevec:将日期格式转换为日期向量格式

2.16.4、datastr(d,f)

|-按照指定的字符串格式显示日期

|-参数d为日期,f为格式,例如‘dd-mm-yyyy’、‘mm/dd/yy’等

2.16.5、计时函数

2.17、稀疏矩阵

2.17.1、sparse

|-sparse(i,j,s,m,n)

|-直接创建稀疏矩阵

|-i,j为非0元素的行列下标;s是非0元素所形成的向量;m,n是s的行列维数,可省略;i,j,s都是长度相同的向量,生成的矩阵的元素s(k)下标分别为i(k)和j(k)

|-sparse(p)

|-由全元素矩阵产生

|-p为全元素矩阵

2.17.2、spdiags(D,k,m,n)

|-矩阵D的每一列代表矩阵的对角线向量;k代表对角线的位置(0代表主对角线,-1代表向下位移一单位的次对角线,1代表向上位移一单位的次对角线,一次类推);m,n分别代表矩阵的行,列维数。

2.17.3、返回稀疏矩阵的元素个数

|-nnz:可返回稀疏矩阵的非0元素个数

|-nonzeros:可返回1个包含所有非0元素的列向量

|-nzmax:返回最大的非0元素个数

2.18、多项式

2.18.1、polyval(p.s)

|-多项式求值

|-p为多项式,s为给定矩阵

2.18.2、r=roots(p)

|-多项式求根

|-p为多项式,r为求得的根,以列向量的形式保存

2.18.3、p=ploy(r)

|-与roots相反,此函数用于根据多项式的根计算多项式的系数

2.18.4、p=ploy(s)

|-求解特征多项式

|-s必须为方阵,p为特征多项式

2.18.5、[r,p,k]=residue(b,a)

|-部分分式展开

|-b和a分别是分子和分母多项式的系数行向量;r为留数行向量;p为极点行向量;k为直项行向量

2.18.6、p=conv(p1,p2)

|-p是多项式p1和p2的乘积多项式

2.18.7、[q,r]=deconv(p1,p2)

|-除法不一定除尽,可能会有余子式,q为商多项式,r为余子式

2.18.8、polyder

|-多项式的微分函数

|-MATLAB中没有专用的积分函数,但是却可以使用[p./length(p):-1:1,k]的方式完成

2.18.9、p=polyfit(x,y,n)

|-多项式拟合使用一个多项式逼近一组给定的数据,准则是最小二乘法

|-x,y向量分别是n个数据点的横坐标、纵坐标;n是用来拟合多项式的阶次,p为n+1个系数构成的行向量

2.18.10、yi=interp1(x,y,xi,’method’)

|-插值运算根据数据点的规律,找到一个多项式表达式可以连接的2个点,插值得出相邻数据点之间的数值

|-x,y为行向量,xi为插值范围内的任意点的x的坐标,yi则是运算之后求得对应的y的坐标;method是插值函数的类型,其中,linear为线性插值(默认)、nearest为最接近的相邻点插值,spline为三次样条插值,cubic为三次插值

2.19、元胞数组与结构数组

2.19.1、元胞数组的创建方式

|-直接使用{}创建

|-由各个元胞创建

|-由各个元胞内容创建

2.19.2、结构数组的创建方式

|-使用.操作符直接创建

|-使用struct函数创建

2.19.3、结构数组的获取与设置

|-使用.操作符直接获取

|-使用getfield获取:getfield(array,{array_index},field,{field_index})

|-使用setfield设置:setfield(array,{array_index},field,{field_index},V),V是需要设置的值

|-使用fieldnames获取结构数组的所有域

2.20、数据统计分析函数

2.20.1、max(x)、min(x)、mean(x)

|-获得矩阵x中各列的最大值、最小值、平均值

2.20.2、std(x)

|-矩阵中各列标准差,即各个元素与该列平均值之差的平方和开方

2.20.3、median(x)

|-矩阵中各列的中间元素

2.20.4、var(x)

|-矩阵中各列的方差

2.20.5、C=cov(x)

|-矩阵中各列间的协方差

2.20.6、S=corrcoef(x)

2.20.7、[S,k]=sort(X,n)

|-沿第n维按模增大重新排序,k为S元素的原位置

2.21、差分与积分函数

2.21.1、diff(X,m,n)

|-沿第n维求第m阶列向量差分,差分是求相邻行之间的差,结果会少掉一行

2.21.2、[fx,fy]=gradient(Z)

|-对Z求x,y方向二等数值梯度

2.21.3、sum(X)

|-求矩阵各列元素之和

2.21.4、cumsum(X,n)

|-沿第n维列累计求和

2.21.5、cumprod(X,n)

|-沿第n维列求累计成绩

2.21.6、trapz(X,y)

|-阶梯法求积分近似于求元素和,把相邻两点数据的平均值乘以步长表示面积。

2.21.7、cumtrapz(X,y,n)

|-用阶梯法沿第n维求函数y对自变量x累计积分

2.22、卷积与傅里叶变换

2.22.1、conv(x,y)

|-计算x与y的卷积

2.22.2、[q,r]=deconv(x,y)

|-解卷积运算

2.22.3、X=fft(x,N)

|-一维快速傅里叶变换

|-x可以是向量、矩阵或者多维数组;N为输入变量x的序列长度,可以省略,如果X的长度小于N,则会自动补0;如果X的长度大于N,则会自动截断;当N取2的整数幂时,傅里叶变换的计算速度最快。通常取大于且有最靠近x长度的幂次。

2.22.4、X=ifft(x,N)

|-一维快速傅里叶逆变换

2.22.5、cross(a,b)

|-向量的矢量积(叉乘)

2.22.6、dot(a,b)

|-向量的数量级(点乘)

3、MATLAB符号计算

3.1、符号表达式的建立

3.1.1、sym(‘常量’,参数)

|-创建符号常量

|-参数可以省略,当使用参数时,则将数值转换成某种格式的符号常量

|-d:返回最接近的十进制数

|-f:返回该符号值最接近的浮点表示

|-r:返回该符号最接近的有理数型

|-e:返回最接近的带有机器浮点的误差有理值

|-positive:限定为正数

|-real:限定为实数

|-unreal:限定为非实数

3.1.2、syms(arg1,arg2,…,参数)

|-同时创建多个符号常量,参数使用方法与sym一致

|-可以将该函数的括号省略,写成指令的形式

3.1.3、SymbolicMathToolbox中的算术运算

|-数值型:MATLAB的浮点运算

|-有理数型:精确地符号运算

|-VPA型:任意精度的运算

|-digits(n):设定默认的精度

|-S=vpa(s,n):将s表示为有n位有效数的符号对象

3.2、符号表达式的操作与转换

3.2.1、自由变量的确定原则

|-小写字母i和j不能作为自由变量

|-符号表达式中如果有多个符号变量,则按照以下的顺序选择自由变量:

|-首先选择x,如果没有x,则选择字母顺序中最接近x的字符变量,在x后面的优先

|-大写字母比所有的小写字母都靠后

3.2.2、symvar(EXPR)

|-symvar函数列出除了i,j,pi,inf,nan,eps和函数名之外的符号变量,返回值是元胞数组

3.2.3、findsym(EXPR,n)

|-EXPR可以是符号表达式或者符号矩阵;n为按顺序得出符号变量的个数,当n省略时,则不按顺序得出EXPR中所有的符号变量

3.2.4、多项式化简函数表

|-pretty:给出排版形式的输出结果

|-collect:表示为合并同类项多项式

|-expand:表示为多项式形式

|-horner:表示为嵌套的形式

|-factor:表示为因式的形式

|-simplify:利用多种代数恒等式对符号表达式进行化简

|-simple:在多种化简方式中寻找最优

3.2.5、符号表达式的替换

|-subexpr(s,s1)

|-利用符号变量s1置换s中的子表达式

|-只有比较长的子表达式才被置换,比较短的子表达式,即使重复出现多次,也不被置换

|-subs(s,old,new)、subs(s,new)

|-用new替换符号表达式s中的old变量

|-当old省略是,则替换自由变量

3.3、符号表达式的运算

3.3.1、求反函数和复合函数

|-finverse(f,v)

|-对指定自变量v的函数f(v)求反函数

|-compose(f,g)

|-求f(x)和g(x)的复合函数f(g(y))

|-compose(f,g,z)

|-求f(x)和g(x)的复合函数f(g(z))

|-compose(f,g,x,z)

|-以x为自变量构成复合函数f(g(z))

|-compose(f,g,x,y,z)

|-以x为自变量构成复合函数f(g(z)),并用z替换y

3.3.2、符号表达式的转换

|-sym2poly:将构成多项式的符号表达式转换为按降幂排列的行向量

|-poly2sym:将按降幂排列的行向量转换成符号表达式

3.3.3、通分后提取分子分母

|-[n,d]=numden(f):n为分子;d为分母,f为分式

3.3.4、符号极限

|-limit(f):对x求趋近于0的极限

|-limit(f,x,a):对x求趋近于a的极限

|-limit(f,x,a,left):对x求趋近于a的左极限

|-limit(f,x,a,right):对x求趋近于a的右极限

3.3.5、符号微分

|-diff(f):对自由变量求一阶微分

|-diff(f,t):对变量t求一阶微分

|-diff(f,t,n):对变量t求n节微分,t可以省略

3.3.6、符号积分

|-int(f,t):求符号变量t的不定积分,t可省略

|-int(f,t,a,b):求符号变量t的定积分,区间为[a,b]

3.3.7、符号级数

|-symsum(s,x,a,b)

|-x为自变量,可省略,s为符号表达式

|-计算级数从a项到第b项的和

|-taylor(f,x,n)

|-对f进行泰勒级数展开,展开至第n项

3.3.8、符号的积分变换(三大变换)

|-F=fourier(f,t,w)

|-傅里叶变换

|-w可省略,省略默认为w,t可省略,省略默认为自由变量

|-f=ifourier(F,w,t)

|-傅里叶反变换

|-F=laplace(f,t,s)

|-拉普拉斯变换

|-f=ilaplace(F,s,t)

|-拉普拉斯反变换

|-F=ztrans(f,n,z)

|-Z变换

|-f=iztrans(F,z,n)

|-逆Z变换

3.3.9、符号方程组的求解

|-solve(eq1,eq2,v1,v2,…)

|-求方程组关于指定变量的解

|-dsolve(eq1,eq2,con1,con2,v1,v2)

|-求解微分方程组

|-eq为微分方程,con为初始条件,v为指定的自由变量

|-一阶导数表示为Dy,n阶导数表示为Dny

|-微分初始条件应写成y(a)=b,Dy(c)=d的形式,当初始条件少于微分方程组时,在所得解中会出现任意常数符C1,C2……

3.4、符号函数的绘图命令

3.4.1、ezplot(F,[xmin,xmax],fig)

|-F是将要画的符号函数,[xmin,xmax]是绘图的自变量范围,省略是默认值为[-2π,2π],fig为指定的图形窗口,省略是默认为当前的图形窗口

3.4.2、ezplot3(x,y,z,[tmin,tmax],animate)

|-x、y、z分比为符号表达式x(t)、y(t)、z(t)

|-[tmin,tmax]是t的范围

|-animate是可选的动画绘制曲线过程,可省略

3.4.3、其他的绘图命令

|-ezcontour:画等高线

|-ezcontourf:画带填充颜色的等高线

|-ezmesh:画三维网线图

|-ezmeshc:画带等高线的三维网线图

|-ezpolar:画极坐标图

|-ezsurf:画三维曲面图

|-ezsurfc:画带登高先的三维曲面图

4、MATLAB计算的可视化

4.1、绘图基本知识

4.1.1、基本绘图命令

|-plot(x)

|-绘制以x为纵坐标的二维曲线

|-当x为m×n的矩阵时,则矩阵的每一列画一条线,共话n条曲线

|-当x为复数时,以实部作为横坐标,虚部作为纵坐标

|-plot(x,y):绘制以x为横坐标,y为纵坐标的二维曲线

|-plot(x,y1,x,y2,x,y3):绘制多条曲线

4.1.2、绘制二维、三维图形的一般步骤

a)曲线数据准备:对于二维曲线,准备横坐标和纵坐标的数据变量;对于三维曲面,准备矩阵参变量和对应的函数值;

b)指定图形窗口和子图的位置:默认时,打开FigureNo.1窗口或者当前窗口、当前子图;也可以打开指定的图形窗口和子图

c)设置曲线的绘制方式:线形、色彩、数据点形;

d)设置坐标轴:坐标的范围、刻度和坐标分格;

e)图形注释:图名、坐标名、图例、文字说明;

f)着色、明暗、灯光、材质处理(仅对三维图形使用);

g)视点、三度(纵横高)比(仅对三维图形使用);

h)图形的精细修饰(图形句柄操作):利用对象的属性值进行设置;利用图形窗口工具条进行设置。

4.1.3、多个图形的绘制方法

|-figure(n):打开n个图形窗口

|-subplot(m,n,k):使m×n幅中的第k幅图成为当前图,其中的,号可以省略

|-同一个窗口多次叠加绘图

|-holdon:使当前的坐标系和图形保留

|-holdoff:是当前的坐标系和图形不保留

|-hold:在以上的2个命令中切换

|-plotyy(x1,y1,x2,y2)

|-双纵坐标绘图

|-左纵轴用于绘制x1,y1的数据,…

|-坐标轴的刻度和范围都是自动产生的

4.2、曲线的线形、颜色和数据点形

plot(x,y,s)中的s为控制字符串,可以取下列的值:

4.2.1、颜色类

|-y:黄色

|-m:品红色(紫色)

|-c:青色

|-r:红色

|-g:绿色

|-b:蓝色

|-w:白色

|-k:黑色

4.2.2、数据点间的连线

|-实线(默认):-

|-点线::

|-点画线:-.

|-虚线:--

4.2.3、数据点形

|-实点标记:.

|-圆圈标记:o

|-叉号标记:×

|-十字形:+

|-星号标记:*

|-方块标记:s

|-钻石型标记:d

|-向下三角形标记:v

|-向上三角形标记:^

|-向左三角形标记:<

|-向右三角形标记:>

|-五角星标记:p

|-六连型标记:h

4.3、坐标轴设置与文字标注

4.3.1、plot命令常用的坐标轴控制命令

|-axisauto:使用默认设置

|-axismanual:使当前坐标范围不变

|-axisoff:取消轴背景

|-axison:使用轴背景

|-axisij:矩阵式坐标,原点在左上方

|-axisxy:普通直角坐标,原点在左下方

|-axis([xmin,xmax,ymin,ymax]):设定坐标的范围,可以使用inf

|-axisequal:纵、横轴采用等长刻度

|-axisfill:在manual方式下起作用,是坐标充满整个绘图区

|-axisimage:纵、横轴采用等长刻度,且坐标框紧贴数据范围

|-axisnormal:默认矩形坐标系

|-axistight:把数据范围直接设置为坐标范围

|-axissquare:产生正方形坐标系

|-axisvis3d:保持高、宽比不变,用于三维旋转时,避免图形的大小变换

4.3.2、分割线

|-gridon:显示分格线

|-gridoff:不显示分格线

|-grid:在以上2个命令之间切换

|-MATLAB默认不显示分格线,分格线的疏密取决于坐标刻度

4.3.3、文字标注

|-title(s):添加图名

|-xlabel(s)、ylabel(s):添加坐标轴名

|-legend(s,pos)

|-在指定位置添加图例

|-pos取值对照:0自动取得最佳位置

1右上角(默认)

2左上角

3左下角

4右下角

-1图右侧

|-legendoff:删除当前的图例

4.3.4、添加文字注释

|-text(xt,yt,s):在图形(xt,yt)处书写文字注释

4.4、特殊图形的绘制

4.4.1、条形图

|-bar(x,y,width,参数)

|-bar3(x,y,width,参数):三维条形图

4.4.2、面积图

|-area(y)

|-area(x,y)

|-使用fill函数填充,可以达到实心的效果

4.4.3、直方图

|-hist(y,m)

4.4.4、饼型图

|-pie(x,explode,label)

|-pie3(x,explode,label):三维饼型图

4.4.5、离散数据图

|-stem:火柴杆图

|-stairs:阶梯图

|-scatter:点图

4.5、特殊坐标系绘图

4.5.1、对数坐标绘图

|-semilogx(x,y,参数)绘制x为对数坐标的曲线

|-semilogy(x,y,参数)

|-loglog(x,y,参数)绘制x和y都是对数坐标的曲线

4.5.2、极坐标绘图

|-polar(theta,radius,参数)

|-tjeta为相角,radius是离原点的距离

4.5.3、等高线图

|-contour(Z,n);绘制Z矩阵的等高线

|-contour(x,y,z,n):

|-contour3:绘制三维等高线

4.5.4、复向量图

|-compass、feather

4.6、绘制三维图形

4.6.1、plot3(x,y,z,s)、plot3(x1,y1,z1,s1,x2,y2,z2,s2,…)

|-s为控制字符串

4.6.2、三维网线图

|-mesh(z)

|-mesh(x,y,x,c);c为指定各点的用色矩阵

4.6.3、三维曲面图

|-surf(z)

|-surf(x,y,z,c)

5、MATLAB程序设计

5.1、程序流程控制

5.1.1、for…end结构

|-for循环变量=array

循环体

end

|-循环体执行的次数就是array的列数,array可以是向量,也可是矩阵

5.1.2、while…end结构

|-while表达式

|-注意nan算作假!

5.1.3、if…else…end结构

|-if条件1

语句段1

elseif条件2

语句段2

else

语句段3

5.1.4、switch…case结构

|-switch开关表达式

case表达式1

case表达式2

……

otherwise

语句段n

5.1.5、try…catch…end试探结构

|-try

catch

|-首先试探性的执行语句段1,如果执行过程中出现错误,则将错误信息赋值给保留的lasterr变量,并放弃该语句,转而执行语句段2,当执行语句段2又出现错误时,则终止该结构

|-运行结束后,可调用lasterr函数查询错误原因,空字符串,表示成功执行

5.1.6、流程控制语句

|-break

|-continue

|-return

|-pause:

|-用于使程序暂停,等待用户按任意键继续,用于程序调试

|-pause(n):暂停n秒

|-keyboard:用于时程序暂停运行,等待键盘命令,执行完自己的工作后,输入return语句,程序就继续运行。该命令用于在程序调试或程序执行时修改变量。

|-input:用于提示用户应从键盘输入,并接受该输入

第二部分MATLAB常用图像处理工具箱函数

6、MATLAB图像工具箱函数

6.1、图像显示

|-colorbar:显示颜色条

|-colormap:建立当前图像的颜色查找表

|-getimage:从坐标轴获得图像数据

|-image:将矩阵显示为图像,可返回一个图像的句柄给一个image对象

|-imshow:显示图像

|-mortgage:在矩形框中显示多幅图像

|-immovie:创建多帧索引图的电影动画

|-subimage:在一幅图中显示多幅图像

|-subplot:将多个子图画到一个图上

|-truesize:调整图像显示尺寸

|-warp:将图像显示到纹理映射表面

|-zoom:缩放图像

6.2、文件I/O

|-imfinfo:返回图像文件信息

|-imread:从图像文件中读取图像

|-imwrite:将图像文件写入到图像文件中

6.3、代数操作

|-imabsdiff:两幅图像的绝对差值

|-imadd:两幅图像的加法

|-imcomplement:反色

|-imdivide:两幅图像的除法

|-imlincomb:两幅图像的线性组合

|-immultiply:两幅图像的乘法

|-imsubstruct:两幅图像的减法

6.4、几何操作

|-imcrop:在指定的矩形裁剪图像

|-imresize:用指定的插值方法调整图像的大小

|-imrotate:使用指定的插值方法按逆时针方向将图像旋转任意指定的角度

|-interp2:二维数据插值

6.5、像素和统计处理

|-col2im:重排矩阵列为图像块

|-im2col:重排图像块为矩阵列

|-imcontour:创建图像数据的轮廓图

|-imfeature:计算图像区域的特征尺寸

|-imhist:计算并显示图像数据的直方图

|-impixel:确定像素的颜色

|-improfile:沿线段计算剖面图的像素值

|-mean2:计算矩阵元素的平均值

|-mean:求向量平均值

|-median:求向量中值

|-numel:求图像像素的总数

|-pixval:显示图像像素的信息

6.6、图像复原

|-deconvblind:盲去卷积复原图像

|-deconvreg:规则化滤波器复原图像

|-deconvwnr:维纳滤波器复原图像

|-edgetaper:使图像边缘振铃逐渐减弱

6.7、图像分析

|-edge:识别灰度图像中的边界

|-qtdecomp:执行四叉树分解

|-qtgetblk:获得四叉树分解块值

|-qtsetblk:设置四叉树分解块值

6.8、图像增强

|-imadjust:对比度调整

|-histeq:直方图均衡

|-imnoise:给图像增加噪声,包括高斯白噪声、黑白像素点噪声、乘积性噪声

|-medfilt2:二维中值滤波器

|-ordfilt2:顺序统计滤波器

|-wiener2:二维自适应除噪滤波器

6.9、图像线性滤波及二维线性滤波器设计

|-conv2:二维卷积

|-convmtx2:计算二维卷积矩阵

|-convn:多维卷积

|-fspecial:产生预定义滤波器

|-filter:一维线性数字滤波,通常与产生预定义的滤波器函数fspecial配套使用

|-filter2:二维线性数字滤波,通常与产生预定义的滤波器函数fspecial配套使用

|-freqspace:确定二维频率响应间隔

|-freqz2:计算二维频率响应

|-fsamp2:用频率抽样法设计二维FIR滤波器

|-ftrans2:用频率转换法设计二维FIR滤波器

|-fwindl:用一维窗口法设计二维FIR滤波器

|-fwindl2:用二维窗口法设计二维FIR滤波器

|-imfilter:对任意类型数组或多维图像进行滤波

6.10、图像变换

|-fft、fft2、fftn:快速傅里叶变换

|-ifft、ifft2、ifftn:快速傅里叶逆变换

|-fftshift:直流分量移到频谱中心

|-dct、dct2:离散余弦变换

|-idct、idct2:离散余弦逆变换

|-dctmtx:计算DCT变换矩阵

|-dwt:一维离散小波变换

|-idwt:一维离散小波逆变换

|-wavedec:一维信号小波分解

|-waverec:一维信号小波重构

|-appcoef:从一维小波分解的分解结构中提取出信号的低频系数,常和waverec函数配套使用

|-detcoef:从一维小波分解的分解结构中提取出信号的高频系数,常和waverec函数配套使用

|-dwt2:二维离散小波变换

|-idwt2:二维离散小波逆变换

|-wavedec2:二维信号的小波分解

|-waverec2:二维信号的小波重构

|-appcoef2:……

|-detcoef2:……

|-wcodemat:对数据矩阵进行伪彩色编码

|-radon:计算Radon变换

6.11、图像领域操作与块操作

|-bestblk:选择块处理的块大小

|-blkproc:对图像进行分块处理

|-colfilt:使用列方向函数进行领域运算

|-nlfilter:进行一般领域运算

6.12、二值图像操作

|-applylut:使用查找表进行领域操作

|-bwarea:计算二值图像中的目标区域

|-bweuler:计算二值图形的欧拉数

|-bwfill:二值图像背景区域填充

|-bwlabel:标识二值图像中的连接成分

|-bwconncomp:查找二值图像中的联通分量

|-bwmorph:二值图像形态运算

|-bwperim:确定二值图像中的目标边界

|-bwselet:选择二值图像中的目标

|-imdilate:对二值图像进行膨胀运算

|-imerode:对二值图像进行腐蚀运算

|-imopen:对二值图像进行开运算

|-imclose:对二值图像进行闭运算

|-makelut:构造(applylut)函数使用的查找表

6.13、基于区域的图像处理

|-roicolor:根据颜色选择要处理的区域

|-roifill:在任意区域内平滑插值

|-roifilt2:对要处理的区域滤波

|-roipoly:选择要处理的多边形区域

6.14、图像的颜色操作

|-brighten:颜色图变亮或变暗

|-cmpermute:重新排列颜色图中的颜色

|-cmunique:寻找唯一的颜色图及向对应的图像

|-colormap:设置或获取颜色图

|-imapprox:由较少颜色的图像近似索引图像

|-rgbplot:绘制RGB颜色图

6.15、颜色空间转换

|-rgb2hsv,hsv2rgb:RGB颜色空间与HSV颜色空间相互转换

|-rgb2ycbcr,ycbcr2rgb:RGB颜色空间与YCbCr颜色空间相互转换

|-rgb2ntsc,ntsc2rgb:RGB颜色空间与NTSC(YIQ)颜色空间相互转换

6.16、图像类型转换

|-dither:通过抖动增加图像颜色分辨率

|-gray2ind,ind2gray:灰度图像转换和为索引图像相互转换

|-rgb2gray:RGB图像转换为灰度图像

|-rgb2ind,ind2rgb:转换RGB图像和索引图像相互转换为索引图像

|-im2bw:通过阀值化方法将图像转换为二值图像

|-mat2gray:将矩阵转换为灰度图像

|-grayslice:通过阀值化方法将从灰度图像转换为产索引图像

|-isgray,isbw,isrgb,isind:判断图像是否为灰度图像,黑白二值图像,真彩色RGB图像,索引图像

THE END
1.公司起名三点建议,给公司起名的三大原则那我们怎么给公司取名字呢?以下就是我对于公司名字给出的几点建议,希望对创业者们能够有帮助。 公司起名三点建议,三大原则: 第一点:根据公司业务特质起名字 我们在给公司取名字的时候,是可以通过灵活使用公司自身的业务特征来给公司进行名字的选择,这样能够通过名字更好的对公司进行规划,对于公司来说是能够得到一个...http://www.gongsimingzi.com/html/s2516.htm
2.公司起名的八个技巧和三大原则观看公司起名的八个技巧和三大原则视频 新公司成立的筹备阶段,首先是给公司起一个名字,一个好的公司名字能够为公司带来更多客户的关注,现如今很多公司都讲究品牌,因此公司名字收到很多人的重视,每个新老板都希望自己的公司名字是**的,今天企好名小编就来跟大家分享一些免费公司起名的技巧,有需要的新老板可以参考一下...https://176914923.b2b.11467.com/news/2471066.asp
3.党的基础知识123条毛泽东思想是马克思列宁主义在中国的运用和发展,是被实践证明了的关于中国革命的正确的理论原则的运用和经验的总结,是中国共产党集体智慧的结晶。 4、毛泽东思想关于思想政治工作和文化工作的理论包括那些内容? 毛泽东同志在《新民主主义论》中指出:;一定的文化是一定社会的政治和经济的反映,又给予伟大影响和作用于一定...http://www.chaoshan.cn/m/view.php?aid=1063
4.易经取名字的几大原则,易经取名两个字的易经取名字的几大原则,易经取名两个字的,如下所示。易经,是阐述天地世间万象变化的古老经典,是博大精深的辩证法哲学书。如何用易经起名?这是很多父母心中思考的问题。关注华易网,你就知道如何用易经起名取名字了。 易经取名字的几大原则 1、根据五行取名字 ...https://www.k366.com/wenzhang/name/157137.htm
1.爱的公司名称大全(免费简单大气)第6篇 简单可爱的工作室名字 遵循三大起名原则 一、工作室起名原则 01、传播力原则 工作室名字一定要具有传奇色彩和影响力,因为有一个好的工作室名字,会让工作室拥有好的传播力,就像百度、网易、新浪、阿里巴巴等这些行业,他们的名字传播力是非常大的,而且非常利于推广,是行业里非常经典的好名字。https://www.1566.cn/gongsimingzi/15401.html
2....金融控股公司准入标准明确设定三大门槛!看央行12条问答【国务院重磅发文!金融控股公司准入标准明确 设定三大门槛!看央行12条问答】9月13日,国务院发布《关于实施金融控股公司准入管理的决定》,授权央行对金融控股公司开展市场准入管理并组织实施监管。同日,央行正式对外发布《金融控股公司监督管理试行办法》,并自2020年11月1日起施行。(券商中国) ...https://finance.eastmoney.com/a/202009131632804646.html
3.统编版历史八年级下册6篇(全文)27、实行改革开放必须坚持的四项基本原则是 ① 反腐倡廉② 坚持中国共产党的领导③ 坚持社会主义道路④ 坚持马列主义毛泽东思想⑤ 坚持人民民主专政 A、①②③④B、②③④⑤C、①③④⑤D、①②④⑤ 28.时代特点会在社会生活的各个方面留下烙印,人们所取的名字也能折射出不同时期的历史情况。根据以下四个人物的...https://www.99xueshu.com/w/file9v6342mm.html
4.药品商标怎么取名字?药品商标取名技巧文书代写企业法律咨询药品商标取名技巧好听的药品商标名字大全药品商标怎么取名字?药品商标取名技巧,商标的唯一性原则决定了它是一种不可再生资源,常用汉字为三五千个左右,如何从众多的汉字中寻找合适的名字为自己的产品命名呢?笔者作为从业多年的商标代理人选择了药品行业的商标命名与大家进行分享,希望能给大家带来一点启发。下面,华律知产小...https://ip.66law.cn/zs/5613.html
5.客户投诉处理的原则与禁忌你想主导或控制客户,如“你根本没讲明白”。其实你可以换一种表达方式,“关于你说的情况,我有点没听明白。” 在把握好以上五大原则和三大禁忌的基础上,再按照课堂上张淑秋老师与大家分享的“投诉处理六步曲”来对待客户投诉,相信你的能量会倍增,客户的满意度会大大提升,客户的流失率也会明显下降。https://www.zhangshuqiu.com/wenzhang_details_118.html
6.我的软考之路(八)——三大原则学会数据流图我们先分析一下,无非就是那三大原则:根据这些原则,DF2违背了数据守恒原则,外部实体与外部实体之间不存在数据流,DF6违背了数据守恒原则,外部实体与数据存储之间不存在数据流,DF7违背了数据守恒原则,数据存储与数据存储之间不存在数据流;P1和P3缺少数据流,违背了守恒加工原则,P4的输入输出数据流相同,违背了守恒加工原则...https://cloud.tencent.com/developer/article/1781315
7.《水果歌》小班教案(精选13篇)10、师、小朋友们真厉害,会看着这些图片创编一首这么好听的儿歌。老师啊给这首好听的儿歌取了个名字,叫《水果歌》。接下来我们一边拍手一边把这首好听的儿歌连起来念一遍。 三、游戏:水果歌1、师:刚刚我们念的这首《水果歌》还可以变成一个好玩的游戏。你们想玩吗? https://www.jy135.com/ziyuan/jiaoan/426424.html
8.取名字家谱家谱取名字的原则如何取名字 在中国传统文化中,取名字是一个很严肃的事情,因为名字直接关系到一个人的命运和未来,所以要慎重对待。在家族起名字前,首要的是要了解家族的渊源和文化背景,尽量体现家族的精神和文化传承。此外,还要遵循起名的基本原则,名字要吉祥、好记、易读、尽量不要拼音和谐音等。在起名过程中还要避免忌讳,比如忌用...https://www.sxsjjy.com/view/62693
9.家具家居建材店名大全建材公司起什么名字好听→MAIGOO知识而对于建材公司来说,好的公司名字有助于吸引消费者,从而给自己的公司树立良好的公司形象。现在建材公司开得越来越多,也包含了许多东西。那么建材公司要如何起名呢?给建材公司起名需要注意一些什么原则?建材公司起名,建材公司名字大全推荐给大家。 一、建材店起名方法...https://www.maigoo.com/goomai/165478.html
10.商标名字怎么取商标取名的原则和要求→十大品牌网摘要:商标注册前要先取好名字,给商标取名字一般可以用中外文对照法、企业名称法、创始人命名法、历史传承法、吉祥寓意法和功效法等方法,取名时注意遵循通俗易记易懂、无不良联想、不用网络热词、不傍身名牌等原则,并做到取好的商标名字内容健康、显著性强、寓意深刻、琅琅上口。下面一起来了解一下商标名字怎么取以...https://www.cnpp.cn/focus/27130.html