第二章Matlab 初步(12课时)一、初等运算和初等函数(0.5课时)1、简单指令:(P5/6)例1.算术运算a=2^2+(12+2*(7-4))/3^2-2^(1/2) %注意算术运算的运算符例2. 简单矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321A 的 输入。
A = [1,2,3; 4,5,6; 7,8,9]A = [1 2 3; 4 5 6; 7 8 9]A=[1,2,34,5,67,8,9] %分行输入例3.指令的续行输入S=1–1/2+1/3–1/4+1/5–1/6+1/7 …-1/82、数值、变量和表达式(1)数值的记述MATLAB 的数值采用习惯的十进制(或科学计数法)表示,可以带小数点或负号。
(2)变量命名规则变量名、函数名是对字母大小写敏感的。
变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符)。
(3)MATLAB 默认的预定义变量:(P7/8)3、有关复数的函数:(P8/9)real(a) %给出复数a 的实部imag(a) %给出复数a 的虚部abs(a) %给出复数a 的模angle(a) %以弧度为单位给出复数a 的相位角例4.复数的运算——表达复数ie z i z i z 63212,21,43π=+=+=,及计算321z z z z =。
z1=3+4i %经典教科书的直角坐标表示法z2=1+2*i %运算符构成的直角坐标表示法z3=2*exp(i*pi/6) %运算符构成的极坐标表示法z=z1*z2/z3例5.复数矩阵的生成与计算(P15/10)A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i]C=A*B例6.求复数矩阵的实部、虚部、模和相角(接例5)C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi例7.复数的运算 ——计算-8的3次方根 (P10/11)(1) 直接计算时,得到的是处于第一象限的方根a=-8;r=a^(1/3)(2) 全部方根的计算% 先构造一个多项式a r r p -=3)(p=[1,0,0,-a]; %p 是多项式)(r p 的系数向量%指令末尾的“英文状态分号”使该指令运行后,不显示结果。
R=roots(p) %求多项式的根问题1:rrr 给出-8的3个3次方根,如何求一个数的n 次方根?(3)图形表示MR=abs(R(1)); %计算复根的模t=0:pi/20:2*pi; %产生参变量在0到2*pi间的一组采样点x=MR*sin(t);y=MR*cos(t);plot(x,y,'b:'),grid on %画一个半径为R的圆%注意“英文状态逗号”在不同位置的作用hold onplot(R(2),'.','MarkerSize',30,'Color','r') %画第一象限的方根plot(R([1,3]),'o','MarkerSize',15,'Color','b')%画另两个方根axis([-3,3,-3,3]),axis square %保证屏幕显示呈真圆hold off点评:●数值计算是Matlab最简单的运算,它格式和符号以及初等函数与习惯基本相同●后面还会学习Matlab的符号计算●数值计算有精度问题。
计算的精度可以由format()函数设置,但不能超过最小精度eps,这里我们略去这些问题(参P17/14)。
学习要点:●变量名的命名规则(与C语言相似)●注意预定义变量i与pi含义,ans,inf,nan也是预定义变量。
复习、自学内容(第一章):1、了解有关表格:表1.4-2, 1.4-3, 1.4-4, 1.5-1, 1.6-1。
2、当前目录、搜索路径及其设置:(P23-25/20-23)MATLAB的所有(M、MAT、MEX)文件都被存放在一组结构严整的目录树上。
MATLAB把这些目录按优先次序设计为“搜索路径”上的各个节点。
此后,MATLAB工作时,就沿着此搜索路径,从各目录上寻找所需的文件、函数、数据。
MATLAB的基本搜索过程大抵如下:当用户从指令窗送入一个名为cont的指令后,●检查MATLAB内存,看cont是不是变量;假如不是变量,则进行下一步。
●检查cont是不是内建函数(Built-in Function);假如不是,再往下执行。
●在当前目录上,检查是否有名为cont的M文件存在;假如不是,再往下执行。
●在MATLAB搜索路径的其他目录中,检查是否有名为cont的M文件存在。
3、工作空间及有关命令:(P28-31/23-29)4、帮助系统及其使用:(P32)实习一:1、熟悉MATLAB环境;2、做例题;二、Matlab数据及Matlab运算(0.5课时)1、Matlab数据的特点矩阵是MATLAB最基本、最重要的数据对象。
单个数据(标量)可以看成是矩阵的特例。
在Matlab中使用变量时不需要说明变量的数据类型,系统将根据赋给变量的值来确定变量的数据类型。
2、Matlab数据类型数值数据:双精度型、单精度数、带符号整数和无符号整数。
字符数据。
结构(Structure)和元胞(或细胞或单元)(Cell)。
多维矩阵和稀疏矩阵(Sparse)。
3、变量和赋值(1)变量的命名●在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
●在MATLAB中,变量名区分字母的大小写。
MATLAB提供的标准函数名以及命令名必须用小写字母。
(2)赋值语句MATLAB赋值语句有两种格式:①变量=表达式②表达式一般情况下,运算结果在命令窗口中显示出来。
如果在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。
在MATLAB语句后面可以加上注释,注释以%开头,后面是注释的内容。
4、Matlab运算(1) 算术运算(a) 基本算术运算:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。
(P8/9)注意:运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。
(b) 点运算:点运算符有.*、./、.\和.^。
两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。
(c) MATLAB常用数学函数:(P110/48)注意:数学函数exp( ),abs( ),angle( )的意义和用法。
这样的函数还有很多,如:sqrt(x)—平方根, round(x)—取整数部分, rem(x,y)—求余, gcd(x,y)—最大公约数, log(x), tan(x), sign(x)—符号函数等,它们可查帮助获得。
(2) 关系运算:MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、= =(等于)、~=(不等于)。
(3)逻辑运算:MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。
三、矩阵(数组)及其运算:(1课时)内容:输入矩阵进行矩阵的各种运算,观察运算结果,学习Matlab 的使用方法。
(第3章/第2章)(一)、矩阵(数组)的创建(P97-102/41-44)1. 直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。
例如A=[1 2 3;4 5 6;7 8 9]2、冒号生成法:只生成一维数组(行向量)。
一般格式: e1:e2:e3例9x1=1:0.2:5%创建一维向量x1,步长0.2;1和5为两个终点A=-4:5%创建一维向量A,步长1;-4和5为两个终点3、线性定点法:只生成一维数组(行向量)。
一般格式:linspace(a,b,n)linspace(a,b,n)与a:(b-a)/(n-1):b等价。
4、利用MATLAB函数建立矩阵:(P98,101/50)●几个产生特殊矩阵的函数:zeros、ones、 eye、rand、randn。
●这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。
其调用格式是:zeros(m) 产生m×m零矩阵zeros(m,n) 产生m×n零矩阵。
zeros(size(A)) 产生与矩阵A同样大小的零矩阵例10.利用MATLAB函数建立矩阵B=ones(3), B1=ones(3,2) %全1矩阵C=zeros(3), C1=zeros(3,2) %全零阵rand('state',0) %将随机数产生器置为初始状态D=rand(3), D1=rand(3,2)D2=100*rand(3) %随机矩阵的输入格式E=eye(3) %单位对角阵diag(D) %取D的对角元素(D未必是方阵),生成一维数组diag(diag(D)) %以D的主对角线构造对角阵5、利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。
例如利用M文件建立MYMAT矩阵。
(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵.(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。
(3)运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。
6、建立大矩阵大矩阵可由方括号中的小矩阵建立起来。
例如A=[1 2 3;4 5 6;7 8 9];C=[A,eye(size(A)); ones(size(A)),A](二)、矩阵的标识与寻访(P103/45)1. 矩阵元素●MATLAB允许用户对一个矩阵的单个元素进行赋值和操作。
例如A(3,2)=200●也可以采用矩阵元素的序号来引用矩阵元素。
矩阵元素按列编号,先第一列,再第二列,依次类推。
以m×n矩阵A为例,矩阵元素A(i,j)的序号为 (j-1)*m+i。
其相互转换关系也可利用sub2ind和ind2sub函数求得(单下标和双下标的转换函数)。
IND = sub2ind(size(A),3,2)[I,J] = ind2sub(size(A),IND)2. 子矩阵标识(1)利用冒号表达式获得子矩阵①A(i,j) 表示取A矩阵第i行、第j列的元素。
A(:,j) 表示取A矩阵的第j列全部元素;A(i,:) 表示A矩阵第i行的全部元素;②A(i:i+m,:) 表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m) 表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m) 表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。