1、西工大matlab考试知识点整理1.p = 2,0,-3,71,-9,13;建立多项式系数向量x = roots(p);求根2.a = 2,3,-1;8,2,3;45,3,9;建立系数矩阵ab = 2;4;23;建立列向量bx = inv(a)*b3.基本运算 sin(45*pi/180) sqrt(2*exp(4.92+0.5)+1)4. 常用命令命令 含义clc 清除命令窗口的显示内容clear 清除Matlab工作空间中保存的变量who或whos 显示Matlab工作空间中的变量信息dir 显示当前工作目录的文件和子目录清单cd 显示或设置当前工作目录type 显示指定m文件的内容hel
2、p或doc 获取在线帮助quit或exit 关闭/推出MATALB5.matlab组成 菜单栏、工具栏、文件编辑窗口、命令窗口、工作空间、历史命令窗口、命令提示符、Start 菜单6. MATLAB提供的帮助信息有两类简单纯文本帮助信息 Help lookfor(条件比较宽松)例:inverse 窗口式综合帮助信息(文字、公式、图形)Dochelpwin7. 符号计算syms x y z 建立符号变量x,y,z=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)8. 求解定积分 求解 I=quad(x.*log(1+x),0,1)或syms xnt
3、(x*log(1+x),0,1)ans = 9. 多项式曲线拟合x=1, 2, 3, 4, 5, 6, 7, 8, 9, 10y=1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2注:一次多项式拟合:p1 = polyfit(x,y,1)三次多项式拟合:p3 = polyfit(x,y,3)plot 原始数据、一次拟合曲线和三次拟合曲线x2=1:0.1:10;y1=polyval(p1,x2)y3=polyval(p3,x2)plot( x, y, *, x2, y1, :, x2, y3)10. 复数及其运算MATLAB中复数的表达:z=a+bi,其中a、b为实数。MA
4、TLAB把复数作为一个整体,象计算实数一样计算复数。11. 矩阵是Matlab最基本的数据对象,并且矩阵的运算是定义在复数域上的。12. Matlab程序控制结构顺序结构分支结构if-then-else 语句if 语句1end if 语句1else 语句2 endswitch-case 语句switch case 判断值1 语句1 case 判断值2 语句2otherwise 语句nend循环结构for-end 语句for 循环控制变量= 起始值:步长:终止值 循环体endwhile-end 语句while 循环体end其他语句break 和 continue 语句break:跳出循环cont
5、inue:提前结束当前循环return 语句:终止程序try-catch 语句:异常处理13M文件(函数文件) 建立、编辑、保存、调用14. 创建一维数组变量行:第一种方法:使用方括号“ ”操作符 a=1 3 pi 3+5*i %or a=1, 3, pi, 3+5*i a= 1.0000 3.0000 3.1416 3.0000 + 5.0000i第二种方法:使用冒号“:”操作符 b=1:10 % x=Start:Increment:End b=1 2 3 4 5 6 7 8 9 10第三种方法:利用函数linspace函数linspace的基本语法x= linspace(x1, x2, n
6、)该函数生成一个由n个元素组成的行向量;x1为其第一个元素;x2为其最后一个元素;x1、x2之间元素的间隔=(x2-x1)/(n-1)。如果忽略参数n,则系统默认生成100个元素的行向量 键入并执行x= linspace(1,2,5)x=1.0000 1.2500 1.5000 1.7500 2.0000第四种方法:利用函数logspace列:使用方括号“ ”操作符,使用分号“;”分割行。 键入并执行x= 1; 2; 3 X=1 2 315. 创建二维数组变量第一种方法:使用方括号“ ”操作符 键入并执行a2=1 2 3;4 5 6;7 8 9a2= 1 2 3 4 5 67 8 9第二种方法
7、:函数方法函数ones(生成全1矩阵)、zeros (生成全0矩阵) 、reshapereshape的使用演示a=-4:4a= -4 -3 -2 -1 0 1 2 3 4b=reshape(a, 3, 3)b=-4 -1 2-3 0 3-2 1 4 单下标的使用a=zeros(2, 5);a(:)=-4:5a = -4 -2 0 2 4 -3 -1 1 3 5注意数组的排列顺序。 16. 元素与子数组的寻访与赋值 一维数组元素与子数组的寻访与赋值: a=linspace(1,10,5)a = 1.0000 3.2500 5.5000 7.7500 10.0000a(1:3) %寻访前3个元素组
8、成的子数组a(1 2 5) %寻访a的第1、2、5个元素组成的子数组 a(3:-1:1) %由前3个元素倒序构成的子数组a(1 2 3 5 5 3 2 1) ans = 1.0000 3.2500 5.5000 10.0000 10.0000 5.5000 3.2500 1.0000数组元素可以被任意重复访问,构成长度大于原数组的新数组。 二维数组元素与子数组的寻访与赋值:a_2=zeros(2, 4) %创建2x4的全0数组a_2 = 0 0 0 0 0 0 0 0a_2(:)=1:8a_2 = 1 3 5 7 2 4 6 8 a_2(2 5 8) %单下标方式寻访多个元素ans = 2 5
9、 8 a_2(2 5 8) =10 20 30a_2 = 1 3 20 7 10 4 6 30a_2(:,2 3)=ones(2) %双下标方式寻访并修改a_2 = 1 1 1 710 1 1 30size函数返回变量的大小,即变量数组的行列数length函数返回变量数组的最大维数 sub2ind函数-双下标转换为单下标 sub2ind(size(A),2,1,2) ind2sub函数-双下标转换为单下标 I,J = ind2sub(size(b),IND)17. 矩阵算术运算运算 运算符 含义说明 加 + 相应元素相加 减 - 相应元素相减 乘 * 矩阵乘法点乘 .* 相应元素相乘幂 矩阵幂
10、运算点幂 . 相应元素进行幂运算左除或右除 或/ 矩阵左除或右除 左点除或右点除 .或./ A的元素被B的对应元素除 18. Matlab提供了6种关系运算符: 、=、=、=(不等于) P = rem(A,3)=0 %被3除,求余 Matlab提供了3种逻辑运算符: &(与)、|(或)、(非) 算术运算优先级最高,逻辑运算优先级最低。19. 求向量的最大值和最小值: (1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值;(2)y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。求矩阵的最大值和最小值:求矩
11、阵A的最大值的函数有3种调用格式,分别是:(1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值;(2) Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号;(3) max(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。求最小值的函数是min,其用法和max完全相同。求和与求积:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘积。sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。pro
12、d(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。平均值与中值: 求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为:mean(X):返回向量X的算术平均值。median(X):返回向量X的中值。mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。media
13、n(A):返回一个行向量,其第i个元素是A的第i列的中值。mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。20. 字符串1)Matlab 用单引号来界定一个字符串。可以使用方括号“ ”直接连接多个字符串变量,得到一个新字符串变量。str1 = I like MATLAB,; % 建立字串变量 str1str2 = JavaScript, and Perl!; % 建立
14、字串变量str2str3 = str1 str2 % 直接连接str1及str2,以建立str3str3 =I like MATLAB, JavaScript, and Perl!2)如要输入的字符串中有单引号,则由两个连续的单引号来表示。若要计算字符串变量的长度(即组成字符串的个数),可用 length 指令。 sentence = Ive got a date!;length(sentence) % 计算字字符串sentence的长度3)double 指令: 查看字符串变量的存储內容(即 ASCII 内码) char 指令: 将 ASCII 內码转换为字符串形式 sentence = Iv
15、e got a date!;sentenceAscii = double(sentence) %查看 sentence 的 ASCII 码sentence2 = char(sentenceAscii) % 将 ASCII 码恢复成字符串形式4)class 或 ischar 指令: 可以用来判断一个变量的类型或它是否为字符串变量。chinese = 今日事,今日毕;out1 = class(chinese) % out1 的值是 “char”x = chinese+1;out2 = ischar(x) % out2 的值是 0,代表 x 不是字符串变量21. 一个字符数组变量存储多行字符串1)第
16、一种方法是使用二维字符数组(Two Dimensional Character Arrays)必须先确认每个字符串(即每一行)的长度一样,否则就必须在短字符串结尾补齐空格 departments = ee ; cs ; econ 注意上述语句中空格字符的使用。departments = ee cs econ2)用char 指令存储多字符串 departments = char(ee, cs, econ) % 注意空格及,的使用3) 从二维字符数组访问字符串时,切记要使用 deblank 指令来清除字符串尾部的空格字符 departments = char(ee, cs, econ);dept1
17、 = departments(1,:); % (1,:)代表第一行的全部元素 dept2 = deblank(dept1); % 使用 deblank 指令清除尾部的空格字符 len1 = length(dept1) % 显示变量 dept1 的长度=4len2 = length(dept2) % 显示变量 dept2 的长度=222. 字符串的操作strcmp 指令: 用于比较字符串的內容的异同不相等返回0,相等返回1out1 = strcmp(str1, str2) % 比较字符串 str1 和 str2 23. 空数组(empty array)有一维是0的数组即为空数组空数组不占据存储空
18、间最简单的空数组:0 x 0的矩阵复杂的空数组:0 x 5 or 10 x 0例如:a=; b=ones(0,5); 察看空数组:a, b, c % or whos a b c空数组并非全0数组数组维数的减小删除数组的某列和行a = magic(4), a(:,2)=删除(2-D、3-D)数组的单个元素使用“全下标”方式,不能删除单个元素a(1, 2)= %系统会警告信息使用“单下标”可以删除单个元素a(2:4)= %数组a将变为向量使用“”同样可以减小字符数组的维数24. 元胞数组(cell array)1) 赋值语句创建元胞数组元胞索引(cell indexing)方式格式:a(1, 2)
19、= 元胞内容索引(content indexing)方式格式:a1, 2= or 直接用大括号一次把所有元素括起来b = James Bond, 1 2;3 4;5 6; pi, ones(5)2)Cell indexing方式创建元胞数组 a(1,1) = 1 4 3; 0 5 8; 7 2 9; a(1,2) = Anne Smith; a(2,1) = 3+7i; a(2,2) = -pi:pi/10:pi;“ ” 表示空元胞数组3)Content indexing方式创建元胞数组 b1,1 = James Bond ; b1,2 = 1 2;3 4;5 6; b2,1 = pi; b2
20、,2 = zeros(5);4)元胞数组的连接c=a b % or c=a; b5)cell函数创建元胞数组b = cell(2, 3)b = whos b Name Size Bytes Class b 2x3 24 cell array注意:每个cell占有4个字节的空间6)celldisp显示元胞数组的全部内容(3种)acelldisp(a) %显示全部内容cellplot(a) %图形方式显示元胞数组的结构使用内容下标索引显示指定元胞的数据格式:var_namerow_index, column_index 或 var_name:7) 读取元胞数组中的内容 读取上述b元胞数组的第1行、
21、第2列元胞的内容b, d=b1, 2读取b1, 2的第3行、第1列的数据。 e = b1,2(3,1)读取元胞数组a第1行的所有元胞。f=a(1,:)删除元胞数组a第1行的所有元胞。a(1,:) = Note: 这里使用的是元胞索引(cell indexing),而不是内容索引(content indexing)25. 结构与结构数组的概念结构(structure)由字段(或域,fields)组成每个字段可以是任一种Matlab数据类型的数据或变量与C语言的结构类型相似结构数组(structure array)多个结构构成结构数组(structure array)结构数组的元素就是一个结构26
22、. 结构数组变量的创建1) 方法一:直接键入clear student % 清除 student 变量 student.name = 张三; % 加入 name 字段 student.id = mr871912; % 加入 id字段 student.scores = 58, 75, 62; % 加入 scores字段 student % 显示结构变量的数据 student = name: 张三 id: mr871912 scores: 58,75,62此时,Matlab视 student 为一个1x1结构数组第二个学生的信息建立 student(2).name = 张宁; % 加入 name
23、字段 student(2).id = mr871913; % 加入 id字段 student(2).scores=68, 85, 92; % 加入 scores字段此时,student变量已成为一个1x2的结构数组2)方法二:struc函数clear student student=struct(name, 张听说, scores, 50 60); student(2)=struct(name, 张廷安, scores, 60 70); student(1), student(2) %显示student(1),student(2)ans = name: 张听说 scores: 50 60ans
24、 = name: 张廷安scores: 60 70 或使用struct创建结构数组变量(一次建立多个元素)clear student student = struct(name, 张听说, 张廷安, scores, 50 60, 60 70); student(1), student(2) %显示student(1), ans = name: 张听说 scores: 50 60ans = name: 张廷安scores: 60 703)结构数组嵌套(nested)结构数组中结构的字段还可以是结构。4)访问结构数组变量的内容 cat函数: 排列结构数组某字段的值格式:cat(dim, struc
25、turefield)dim=1, 竖排;dim=2, 横排Exam: cat(1, student.scores)ans = 55 60 65 80 cat(2, student.scores)ans =55 60 65 805) 计算平均值(使用mean函数)计算每次考试的平均值average1=mean(cat(1, student.scores)average1 =60 7027. plot指令的基本调用格式 (1)plot(x) x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。x为复数二维数组时
26、,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线(2)plot(x, y)x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的曲线x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。 x = 0:pi/100:2*pi;y = 2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)或t = -pi:pi/100:pi;x = t.*cos(3*t);y = t.*sin(t).2;plot(x,y)(3)plot(x1, y1, x2, y2, )绘制以x1为横坐标、y1为纵坐标的曲线1,以
27、x2为横坐标、y2为纵坐标的曲线2,等等。其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。(4)多次叠绘多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。 hold on 保持当前坐标轴和图形,并可以接受下一次绘制。hold off 取消当前坐标轴和图形保持,这种状态下,调用plot绘制完全新的图形,不保留以前的坐标格式、曲线。 (5)双纵坐标:plotyy指令plotyy指令调用格式: plotyy(x1, y1, x2, y2) x1-y1曲线y轴在左, x2-y2曲线y轴在右。(6)多子图subplot(m, n, k) 使(m*n)幅子图中第k个子图成为当前图s
28、ubplot(postion, left, bottom, width, height) 在指定的位置上开辟子图,并成为当前图(7)分格线与grid指令 grid on 画出分格线grid off 不画分格线MATLAB的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。(8)坐标框box on 控制加边框线box off 控制不加边框线(9)刻度设置指令及格式:set(gca, xtick, xs, ytick, ys)xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。28. 图形标识(1)图形标识包括:图名(title)坐标轴名(xlabel、ylabel)图形文本注释(text)图例(legend)(2)简捷使用格式 title(s) % s为字符串变量或常量xlabel(s)ylabel(s)legend(s)text(x, y, s) % 指定坐标(x, y)处加注文字 (3)直方图(柱形图)bar垂直直方图累计式year=1990 1995 20
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1