您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > MATLAB学习笔记
MATLAB学习笔记14.12.24一、数据类型1.数据类型分为整数(int)、单精度浮点数(single)、双精度浮点数(double)三类,默认情况下,按照双精度浮点数进行存储操作。对所有数值进行双进度浮点类型存储和操作。2.floor向下取整floor(1.4)=1floor(-3.5)=-4ceil向上取整ceil(1.4)=2ceil(-3.5)=-3round接近取整round(1.4)=1round(-3.5)=-43.复数:构造函数complex(a,b)求实函数real(z)求虚函数imag(z)模abs(z)辅角angle(z)共轭复数conj(z)4.Inf无穷量NaN非数值量5.结构创建(1)struct函数(2)patient=[patient1,patient2]Patient对象由patient1和patient2连接形成。6.创建单元数组cell6.访问单元数组C(m,n)指的是单元数组中第m行第n列的单元;C{m,n}指的是单元数组中第m行第n列的单元中的内容。14.12.257.单元数组操作(1)单元数组的合并用{}(2)如果要删除单元数组中的指定单元,只需将空矩阵赋给该单元即:C{m,n}=[]。(3)用reshape函数来改变单元数组形状(4)函数句柄Function_Handle=@Function_Filename8.运算符与运算:MATLAB中运算符分为算术运算符、关系运算符和逻辑运算符。算数运算符P33表2.10(2)关系运算符P33表2.11‘==’是比较两个变量,相等返回1,不相等返回0;‘=’是赋值。(3)逻辑运算符&与︱或~非xor(x,y)异或x与y不同时为0返回1;否则返回0any(x)向量x中,有任何非零元素,返回1;否则返回0矩阵x中的每一列有非零元素返回1,否则返回0all(x)向量x中,所有元素非0,返回1;否则返回0矩阵x中的每一列所有元素非0返回1,否则返回0(4)运算优先级P35表2.149.字符串处理字符串相关函数P35表2.15isstrstrcmpisspacedeblankfevalevalstrrepisletter(1)字符串构造:构造多行字符串时,如果字符串写在[]内,那么多行字符串的长度必须相同;如果字符串写在{}内,长度可以不同。(i)strcatconcatenatestringshorizontally水平连接(ii)strvcat连接多行字符串时,每行字符串的长度不要求相等,所有非最长字符串的右边会自动补偿空格,使每行字符串的长度相同。(iii)charchar与strvcat函数类似(非最长也补偿),不过当多行字符串中有空字符串时,strvcat函数会自动进行忽略,而char函数则会把空字符串也用空格补偿后,再进行连接。字符串比较使用关系运算进行比较时,返回值是一个与字符串长度相同大小的数组,因此要求被比较的两个字符串长度必须相同;而strcmp函数则是比较两个字符串是否相同,无需比较两个字符串的长度,返回值为数值0或1。查找与替换findstr查找与搜索strrep替换二、矩阵基础(1)创建矩阵P39表2.17ones(n)zeros(n)eye(n)rand(m,n)ones(size(A))magic(m,n)randn(n)[]等(2)改变矩阵结构P41表2.18fliplr(A)矩阵每一行进行逆序排列flipud(A)矩阵每一列进行逆序排列rot90(A)矩阵逆时针旋转90度sort(A,di)dim=1,对每列进行升序排列并返回排列后的矩阵;dim=2,对每行进行升序排列并返回排列后的矩阵。repmat(A,[mnp])创建一个和矩阵A有相同元素的m*n*p块的多为矩阵.A[(13),:]获取A矩阵第一、三行两行所有列A=[A,[101;102;103]]在A后加一个列向量[101;102;103]矩阵下标1、双下标索引通过两个下标来确定元素在矩阵中的位置,如A(2,3)表示矩阵A中第二行第三列的元素2、单下标索引通过一个坐标来确定元素在矩阵中的位置,采用列优先的原则.例如:A=rand(3,4),A(7)表示矩阵A中第一行第三列的元素;A(9)为第三行第三列的元素.3、矩阵下标引用P42表2.19A(i)将二维矩阵A重组为一维矩阵,返回数组中第i个元素A(:,j)返回二维矩阵中第j列A(i,:)返回二维矩阵A中的第i行A(:,j:k)返回二维矩阵中第j列到第k列向量组成的子阵A(:)将矩阵A中每列合并成一个长的列向量A(j:k)返回一个行向量,其元素为A(:)中第j个元素到第k个元素4、引用转换sub2indind=sub2ind([34],1,3)ind=7[IJ]=ind2sub([34],7)I=1J=35、访问多个矩阵元素6、矩阵结构P43表2.20isempty(A)判断矩阵是不是空矩阵isscalar(A)判断矩阵是不是单元素标量矩阵isvector(A)判断矩阵是否是只有一行或一列的一维向量issparse(A)判断矩阵是不是稀疏矩阵7、矩阵大小ndims矩阵维度size矩阵各维长度length矩阵最长维长度numel矩阵元素个数三、编程基础1、变量与语句(1)变量:必须以字母作为开端,其后可以是任意字母或下划线,但不能有空格。不能使用关键字作为变量名,如’if’,’end’等。(2)关键字keyword2、程序控制(1)顺序结构按照各操作在程序文本中出现的先后顺序执行.(2)分支结构(I)if-else-end(i)执行命令组只有一组ifexpressioncommands%判决条件为真,执行命令组commandsend(ii)执行命令组有两组ifexpression%判决条件commands1%判决条件为真,执行命令组commands1elsecommands2%判决条件commands1为假,执行命令组commands2end(iii)执行命令组有n(n=2)ifexpression1%判决条件commands1%判决条件为真,执行命令组commands1elseifexpression2%判决条件commands1为假,执行命令组commands2…elsecommandsn%前面的所有判决条件为假,执行commandsnend(II)switch-case结构switchvaluecasetest1command1%如果value等于test1,执行command1casetest2command2%如果value等于test2,执行command2…casetestkcommandskotherwisecommands%如果value不等于前面所有值,执行commandsendswitch-case结构至少有一组命令将被执行;switch后的表达式value应为一个标量或一个字符串,当表达式为标量时,比较形式为:表达式==检测值i;当表达式为字符串时,MATLAB将调用字符串函数strcmp来进行比较,比较形式为:strcmp(表达式,检测值i)(III)try-catch结构trycommand1%命令组commands1总是被执行,若正确,执行完此命令组catchcommands2%命令组commands1执行发生错误时,执行命令组commands2end只有当命令组commands1发生错误时,才执行命令组commands2.try-catch结构只提供两个可以选择的命令组.当执行commands1发生错误时,可用lasterr函数查询出错原因,若lasterr运行结果为空字符串,表示命令组commands1执行成功.执行命令组commands2又发生错误,MATLAB将终止该结构.(3)循环结构1.for循环forx=arraycommandsendx为循环变量,for与end之间的命令组commands为循环体,执行次数由array决定2.while循环结构四、可视化基础1、图像绘制(1)二维绘制plotplot(Y)plot(X1,Y1,…,Xn,Yn)plot(X1,Y1,LineSpec,…,Xn,Yn,LineSpec)Xn为横坐标数据,Yn为纵坐标数据,LineSpec为绘制图线的属性.(i)plot(Y)Y为向量,绘制的图形以向量索引为横坐标,以向量元素的值为纵坐标;Y为实数矩阵,绘制以Y的列向量对其坐标索引的图形;Y为复向量,绘制图形以复向量实部为横坐标值,虚部为纵坐标.(ii)plot(X1,Y1,..,Xn,Yn)X、Y均可为向量或矩阵(iii)线性标识颜色P85表5.114.12.26(4)图形叠绘holdonholdoffhold切换(5)子图绘制subplotsubplot(m,n,p)subplot(mnp)(6)交互绘图ginput只能用于二维[x,y]=ginput(n)n为个数,其功能为从图形中获得n个点的数据坐标(x,y)gtextgtext(‘string’)gtext({‘string1’;’string2’;’string3’;…})多行字符串每次单击左键可将其中的一行字符串放置在图形中,直至全部放置完成.zoomzoomon/offzoomxonzoomyon(7)plotyyplotyy(X1,Y2,X2,Y2)(8)特殊坐标绘图semilogx;semilogy;loglog(9)极坐标polarpolar(theta,rho)polar(theta,rho,LineSpec)(10)函数绘图fplot(fun,limit)limit为上下限,自动调整间距ezplot(fun,[xmin,xmax])(11)图形标题title(‘string’)设置当前绘图区的标题为字符串string的值.Title(‘…,’PropertyName’,PropertyValue…)设置标题的同时,设置标题的属性,如字体,颜色,加粗等.(通过TEX语法设置文字为斜体显示,\it是TEX标记语法格式,表示设置后续文字为斜体,并且用^符号后紧跟的大括号内的部分会以上格式显示)二、三维绘图plot3(三维曲线图)plot3(X1,Y1,Z1)X1,Y1,Z1为长度相同的向量时,plot3绘制得到一条分别以X1,Y1,Z1为x,y,z轴坐标的空间曲线;X1,Y1,Z1为m*n的矩阵时,绘得n条曲线.mesh(X,Y,Z)mesh(Z)X和Y必须均为向量,若X和Y的长度分别为m和n,则Z必须为m*n的矩阵;(1)确定自变量x和y的取值范围和间隔x=x1:dx:x2;y=y1:dy:y2;(2)利用meshgrid命令生成格点矩阵[X,Y]=meshgrid(x,y);(3)计算在自变量采样”格点”上的函数值Z=f(X,Y)surf(Z)surf(X,Y,Z)surf(Z,C)surf(X,Y,Z,C)surf与mesh不同的是:mesh彩边白格surf黑边彩格五、数学基础(一)数组与矩阵操作5.1.1数组创建[1,2;34]:linspacelogspace访问与修改数组X=a:step:by=linspace(a,b,n)y=logspace(a,b,n)10^a为首元素,10^b为尾元素,n为数组元素总数量5.1.2数组运算A+BA-BA+/-scalarA*scalarA/scalarA.*B或A/B或A\B要求维数相同,对应元素相加减乘除,计算结果为与A和B同维数的矩阵。数组点积dot(A,B)=sum(A.*B)scalar数组叉积cross(A,B)5.2.1矩阵操作.1.特殊矩阵创建P128表6.1magic(n)魔方分布rand(m,n)0-1随机分布randn(m,n)均值为0方差为12.改变矩阵结构合并C=[AB]C=[A;B]删除赋空转置共轭转置”’”转置”.’”3.矩阵元素查找与排序findind=find(X)[row,col]=find(X)5.2.2多项式函数P163表7.7
本文标题:MATLAB学习笔记
链接地址:https://www.777doc.com/doc-2887352 .html