《内存变量的管理精.ppt》由会员分享,可在线阅读,更多相关《内存变量的管理精.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、内存变量的管理内存变量的管理第1页,本讲稿共18页数组:一维数组的创建数组:一维数组的创建数组:一维数组的创建数组:一维数组的创建直接输入法直接输入法n使用分号创建一维列数组使用分号创建一维列数组n使用空格创建一维行数组使用空格创建一维行数组步长生成法a:step:ba-数组第一个元素step-数组元素间隔,即步长b-数组最后一个元素子数组寻访x=rand(1,5)x(3)x(1 2 5)x(1:3)x(3:end)x(3:-1:1)x(find(x0.5)x(1 2 3 4 4 3 2 1)赋值:x(3)=0 x(1 4)=1 2x(2:4)=1第2页,本讲稿共18页矩阵(二维数组)的创建矩
2、阵(二维数组)的创建n利用冒号表达式建立一个向量利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspace(a,b,n)其中a和b是生成向量的第一个和最后一个元素,n是元素总数。显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价n通用的特殊矩阵函数常用的产生通用特殊矩阵的函数有:zeros:产生全0矩阵(零矩阵)。ones:产生全1矩阵(幺矩阵)。eye:产生单位矩阵。rand:产生01间均匀分布的随机矩阵。ra
3、ndn:产生均值为0,方差为1的标准正态分 布随机矩阵。第3页,本讲稿共18页分别建立分别建立33、32和与矩阵和与矩阵A同样大小的零矩阵。同样大小的零矩阵。(1)建立一个建立一个33零矩阵。零矩阵。zeros(3)(2)建立一个建立一个32零矩阵。零矩阵。zeros(3,2)(3)设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立一个与矩阵建立一个与矩阵A同同样大小零矩阵。样大小零矩阵。A=1 2 3;4 5 6;%产生一个产生一个23阶矩阵阶矩阵Azeros(size(A)%产生一个与矩阵产生一个与矩阵A同样大小的零矩阵同样大小的零矩阵建立随机矩阵:建立随机矩阵:(1
4、)在区间在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。(2)均值为均值为0.6、方差为、方差为0.1的的5阶正态分布随机矩阵。阶正态分布随机矩阵。命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持,它在矩阵总元素保持不变的前提下,将矩阵不变的前提下,将矩阵A重新排成重新排成mn的二维矩阵。的二维矩阵。第4页,本讲稿共18页矩阵(二维数组)的创建矩阵(二维数组)的创建n魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角
5、线上的元素和都相等。对于魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元阶魔方阵,其元素由素由1,2,3,n2共共n2个整数组成。个整数组成。MATLAB提供了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n),其功能是生,其功能是生成一个成一个n阶魔方阵。阶魔方阵。将将101125等等25个数填入一个个数填入一个5行行5列的表格中,使其每行每列及对角线的和均为列的表格中,使其每行每列及对角线的和均为565。M=100+magic(5)n范得蒙矩阵范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第
6、二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。例如,A=vander(1;2;3;5)即可得到上述范得蒙矩阵。n伴随矩阵 MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的x3-7x+6的伴随矩阵,可使用命令:p=1,0,-7,6;c=compan(p)roots=eig(c),获得多项式的根第5页,本讲稿共18页n帕斯卡矩阵帕斯卡矩阵我们知道,二次项我们知道,二次项(x+y)n展开后的系数随展开后的系数随n的增大组的增大组成一个
7、三角形表,称为杨辉三角形。由杨辉三角形表成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡组成的矩阵称为帕斯卡(Pascal)矩阵。函数矩阵。函数pascal(n)生成一个生成一个n阶帕斯卡矩阵。阶帕斯卡矩阵。求求(x+y)5的展开式。的展开式。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:pascal(6)矩阵次对角线上元素矩阵次对角线上元素1,5,10,10,5,1即为展开式的系数。即为展开式的系数。第6页,本讲稿共18页矩阵的代数运算矩阵的代数运算n 矩阵乘法矩阵乘法 假定有两个矩阵假定有两个矩阵A和和B,若,若A为为mn矩阵,矩阵,B为为np矩阵,则矩阵,则C
8、=A*B为为mp矩阵。矩阵。n矩阵数乘矩阵数乘n向量点乘向量点乘n向量点积向量点积n向量叉乘向量叉乘n混合积混合积n卷积与多项式乘法卷积与多项式乘法n解卷和多项式除法解卷和多项式除法第7页,本讲稿共18页矩阵的代数运算矩阵的代数运算 (3)矩阵除法矩阵除法在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分别表示左除和右除。如果,分别表示左除和右除。如果A矩阵矩阵是非奇异方阵,则是非奇异方阵,则AB和和B/A运算可以实现。运算可以实现。AB等效于等效于A的逆左乘的逆左乘B矩阵,也就是矩阵,也就是inv(A)*B,而,而B/A等效于等效于A矩阵的逆右乘矩阵的逆右乘B矩阵,也
9、就是矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,如对于含有标量的运算,两种除法运算的结果相同,如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,设。又如,设a=10.5,25,则,则a/5=5a=2.1000 5.0000。对于矩阵来说,左除和右除。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般ABB/A。(4)矩阵的乘方 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。点运算 在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运
10、算符前面加点,所以叫点运算。点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。第8页,本讲稿共18页2.3 矩阵比较关系运算矩阵比较关系运算 MATLAB提供了提供了6种关系运算符:种关系运算符:(小于小于)、(大于大于)、=(大于大于或等于或等于)、=(等于等于)、=(不等于不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。关系运算符的运算法则为:(1)当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。(2)当参
11、与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低第9页,本讲稿共18页矩阵比较关系运算矩阵比较关系运算 产生产生5阶随机方阵阶随机方阵A,其元素为,其元素为10,90区间的随机整数,区间的随机整数,然后判
12、断然后判断A的元素是否能被的元素是否能被3整除。整除。(1)生成生成5阶随机方阵阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2)判断判断A的元素是否可以被的元素是否可以被3整除。整除。P=rem(A,3)=0 其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余的余 数矩阵。数矩阵。此时,此时,0被扩展为与被扩展为与A同维数的零矩阵,同维数的零矩阵,P是进行等于是进行等于(=)比比较的结果矩阵。较的结果矩阵。第10页,本讲稿共18页2.9 特征值与特征向量矩阵的特征值与特征向量矩阵的特征值与特征向量 在在MATLABMATLAB中,计算矩阵中,计
13、算矩阵A A的特征值和特征向量的函数是的特征值和特征向量的函数是eig(A)eig(A),常用的调用格式有,常用的调用格式有3 3种:种:(1)E=eig(A)(1)E=eig(A):求矩阵:求矩阵A A的全部特征值,构成向量的全部特征值,构成向量E E。(2)V,D=eig(A)(2)V,D=eig(A):求矩阵:求矩阵A A的全部特征值,构成对角的全部特征值,构成对角阵阵D D,并求,并求A A的特征向量构成的特征向量构成V V的列向量。的列向量。(3)V,D=eig(A,nobalance)(3)V,D=eig(A,nobalance):与第:与第2 2种格式类似,但种格式类似,但第第2
14、 2种格式中先对种格式中先对A A作相似变换后求矩阵作相似变换后求矩阵A A的特征值和特征的特征值和特征向量,而格式向量,而格式3 3直接求矩阵直接求矩阵A A的特征值和特征向量。的特征值和特征向量。第11页,本讲稿共18页3.1 For循环 For For循环允许一组命令以固定的和预定的次数循环允许一组命令以固定的和预定的次数重复。重复。ForFor循环的一般形式是:循环的一般形式是:for x=arrayfor x=array commands commands end end 在在forfor和和endend语句之间的语句之间的commandscommands按数组中按数组中的每一列执行
15、一次。的每一列执行一次。在每一次迭代中,在每一次迭代中,x x被指定为数组的下一列,被指定为数组的下一列,即在第即在第n n次循环中,次循环中,x=array(:,n)x=array(:,n)。第12页,本讲稿共18页ForFor循环的其他重要方面是:循环的其他重要方面是:(1 1)ForFor循环不能用循环不能用ForFor循环内重新赋值循环循环内重新赋值循环变量变量n n来终止。来终止。(2 2)语句语句110110是一个标准的是一个标准的MATLABMATLAB数组数组创建语句。在创建语句。在ForFor循环内接受任何有效的循环内接受任何有效的MATLABMATLAB数组。数组。(3 3
16、)ForFor循环可按需要嵌套。循环可按需要嵌套。【例【例-1-1】用】用MATLABMATLAB程序建立九九乘法表。程序建立九九乘法表。第13页,本讲稿共18页 (4 4)当用一个等效的数组方法来解给定的问)当用一个等效的数组方法来解给定的问题时,应避免用题时,应避免用ForFor循环。循环。(5 5)为了得到最大的计算速度,在)为了得到最大的计算速度,在ForFor循环循环(WhileWhile循环)被执行之前,应预先分配数组。循环)被执行之前,应预先分配数组。第14页,本讲稿共18页常用标点及功能常用标点及功能标点符号标点符号 定义定义 标点符号标点符号 定义定义;区分行区分行 .小数点
17、及域访问等小数点及域访问等,变量数组元素间隔变量数组元素间隔 .连接语句连接语句:在数组中应用较多在数组中应用较多 字符串的标识符号字符串的标识符号()指定运算优先等级指定运算优先等级 =赋值符号赋值符号 矩阵定义的标志等矩阵定义的标志等 !调用操作系统运算调用操作系统运算%注释语句的标识注释语句的标识第15页,本讲稿共18页常用控制命令及功能常用控制命令及功能n clc 擦去一页命令窗口擦去一页命令窗口,光标回屏幕左上光标回屏幕左上角角 n clear 从工作空间清除所有变量从工作空间清除所有变量 n clf 清除图形窗口内容清除图形窗口内容 n who 列出当前工作空间中的变量列出当前工作
18、空间中的变量 n whos 列出当前工作空间中的变量及信息列出当前工作空间中的变量及信息 n type 列出列出M文件文件n help 查询所列命令的帮助信息查询所列命令的帮助信息n exit/quit 结束结束Matlab会话会话第16页,本讲稿共18页符号运算符号运算的功能的功能z=a*t2+b*t+c;r=solve(z,t)对缺省变量求解对缺省变量求解r=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2)第17页,本讲稿共18页符号运算符号运算的功能的功能对任意变量求解对任意变量求解r=solve(z,b)r=-(a*t2+c)/tr=solve(z,c)r=-a*t2-b*tr=solve(z,a)r=-(b*t+c)/t2第18页,本讲稿共18页