《MATLAB语言入门基础.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言入门基础.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB程序语言设计程序语言设计应自炉应自炉五邑大学信息学院五邑大学信息学院20072007年年ziluy第二讲第二讲 MATLAB语言入门基础语言入门基础2.1 MATLAB 基本数据类型基本数据类型2.2 变量、常量与赋值语句结构变量、常量与赋值语句结构2.3 矩阵的矩阵的 MATLAB 表示表示2.4 多维数组的定义多维数组的定义2.5 字符串变量及其处理字符串变量及其处理2.6 稀疏矩阵稀疏矩阵2.7 矩阵的基本运算矩阵的基本运算2.8 综合例子与练习题综合例子与练习题2.1 MATLAB 基本数据类型基本数据类型MATLAB 基本数据类型为双精度浮点数的矩阵,在基本数据类型为双精
2、度浮点数的矩阵,在4.2版本及之前版本,只有这一数据类型,但从版本及之前版本,只有这一数据类型,但从5.0后增加了许多其它数据类型,主要有后增加了许多其它数据类型,主要有charcharacter array(string).cellcell array.structstructure arraysinglesingle precisionuint8unsigned 8-bit integeruint16unsigned 16-bit integer.uint32unsigned 32-bit integer.int8signed 8-bit integer.int16signed 16-bi
3、t integer.int32signed 32-bit integer.2.2 变量、常量与赋值语句结构变量、常量与赋值语句结构MATLAB 变量的命名规则和其它语言的类似,区分大小变量的命名规则和其它语言的类似,区分大小写,基本变量类型为矩阵,不用定义维数写,基本变量类型为矩阵,不用定义维数直接赋值语句直接赋值语句 变量变量 赋值表达式赋值表达式 例:例:a=5函数调用语句函数调用语句 返回变量列表返回变量列表 函数名(输入变量列表)函数名(输入变量列表)例:例:a=ones(10,100);m,n=size(a)2.2 变量、常量与赋值语句结构变量、常量与赋值语句结构MATLAB 语言中
4、还为特定常数保留了一些名称,而这些语言中还为特定常数保留了一些名称,而这些常量都可以重新赋值,但建议避免这样做。常量都可以重新赋值,但建议避免这样做。ans命令窗最近一次命令的命令窗最近一次命令的结结果果eps机器的浮点机器的浮点误误差限差限2.2204e-016i 和和 j纯单纯单位虚数位虚数inf无无穷穷大大NaN不定式,如不定式,如00pi圆圆周率的双精度浮点表示周率的双精度浮点表示 3.1416lasterr最新一次的最新一次的错误错误信息信息lastwarn最新一次的警告信息最新一次的警告信息2.3 矩阵的矩阵的MATLAB表示表示在在 MATLAB 中表示矩阵是非中表示矩阵是非常方
5、便灵活的,如输入矩阵常方便灵活的,如输入矩阵在在 MATLAB 命令窗中输入命令窗中输入下面语句:下面语句:a=1 2 3;4 5 6;7 8 9a=1 2 3 4 5 6 7 8 9左边语句在工作区中建立了变量左边语句在工作区中建立了变量 a,语句的末尾没有分号,显示,语句的末尾没有分号,显示结果,否则不显示结果,如下面结果,否则不显示结果,如下面语句语句 a=1 2 3;4 5 6;7 8 9;2.3 矩阵的矩阵的MATLAB表示表示下面语句输入行向量和列向量下面语句输入行向量和列向量 b=3 5 2 4 7b=3 5 2 4 7 c=1;3;6;9;3c=1 3 6 9 3由已知矩阵获得
6、新的矩阵由已知矩阵获得新的矩阵 bb=b;2*b;1 2 3 4 5bb=3 5 2 4 7 6 10 4 8 14 1 2 3 4 5 cc=c,2*c,1;3;5;7;9cc=1 2 1 3 6 3 6 12 5 9 18 7 3 6 92.3 矩阵的矩阵的MATLAB表示表示访问矩阵的某一个元素访问矩阵的某一个元素(第二行第三列)(第二行第三列)设矩阵设矩阵 a 为为 a=magic(3)a=8 1 6 3 5 7 4 9 2 a(2,3)ans=7提取提取 a 矩阵的子矩阵矩阵的子矩阵 aa=a(1,3,2,3)aa=1 6 9 2提取提取 a 矩阵的某一些行矩阵的某一些行 a(1,3
7、,:)ans=8 1 6 4 9 2提取提取 a 矩阵的某一些列矩阵的某一些列 a(:,2,3)ans=1 6 5 7 9 22.3 矩阵的矩阵的MATLAB表示表示修改矩阵的某一个元素修改矩阵的某一个元素设矩阵设矩阵 a 为为 a=magic(3)a=8 1 6 3 5 7 4 9 2 a(2,3)=4a=8 1 6 3 5 4 4 9 2修改矩阵的一些元修改矩阵的一些元素,注意维数的大素,注意维数的大小要相同小要相同冒号表达式冒号表达式 a(1,:)=2 3 4a=2 3 4 3 5 7 4 9 2 b=1:3:20b=1 4 7 10 13 16 192.4 多维数组的定义多维数组的定义
8、除了标准的二维矩阵外,除了标准的二维矩阵外,MATLAB从从5.0开始定义三维或多维开始定义三维或多维数组,三维数组如图所示数组,三维数组如图所示2.4 多维数组的定义多维数组的定义以下语句定义一个三维数组或矩阵以下语句定义一个三维数组或矩阵 a1=magic(3);a2=a1;a3=a1-a2;a4(:,:,1)=a1;a4(:,:,2)=a2;a4(:,:,3)=a3a4(:,:,1)=8 1 6 3 5 7 4 9 2a4(:,:,2)=8 3 4 1 5 9 6 7 2a4(:,:,3)=0 -2 2 2 0 -2 -2 2 02.4 多维数组的定义多维数组的定义MATLAB提供了另一
9、个函数提供了另一个函数 cat 函数来构造多维数组函数来构造多维数组B=cat(n,A1,A2,A3,A4,.)沿着第沿着第 n 维方向连接矩阵维方向连接矩阵A1,A2,A3,A4,.a1=magic(3);a2=pascal(3);a3=a1+a2;a4=cat(1,a1,a2,a3)a4=8 1 63 5 74 9 21 1 11 2 31 3 69 2 74 7 105 12 8 a5=cat(2,a1,a2,a3)a5=8 1 6 1 1 1 9 2 73 5 7 1 2 3 4 7 10 4 9 2 1 3 6 5 12 82.4 多维数组的定义多维数组的定义cat 函数的另一个例子
10、函数的另一个例子 a=magic(3);b=pascal(3);c=cat(4,a,b)c(:,:,1,1)=8 1 6 3 5 7 4 9 2c(:,:,1,2)=1 1 1 1 2 3 1 3 6size 函数用来求的矩阵的维数大小函数用来求的矩阵的维数大小 size(c)ans=3 3 1 2length 函数用来求矩阵各维的最大值函数用来求矩阵各维的最大值 length(c)ans=32.5 字符串变量及其处理字符串变量及其处理MATLAB 字符串由单引号括起来定义,例如字符串由单引号括起来定义,例如 a=This is a string arraya=This is a string
11、 array字符串可由如下方式连接起来字符串可由如下方式连接起来 a=This is;b=an example;c=for strings.;d=a b cd=This is an example for strings.2.5 字符串变量及其处理字符串变量及其处理字符串比较字符串比较 strcmp(s1,s2)当字符串当字符串 s1 和和 s2 完全相同时,函数返回完全相同时,函数返回 1,否则返回,否则返回 0.a=hello;b=hello;c=hellp;strcmp(a,b),strcmp(b,c)ans=1ans=0字符串查找字符串查找 findstr(s1,s2)该函数返回较短一
12、个字符串在另一个字符串中出现的下标位置。若该该函数返回较短一个字符串在另一个字符串中出现的下标位置。若该字符串不另一个字符串中出现,则返回一个空矩阵。字符串不另一个字符串中出现,则返回一个空矩阵。findstr(a,lo),findstr(c,lo)ans=4ans=2.5 字符串变量及其处理字符串变量及其处理其他字符串函数其他字符串函数字符串替换字符串替换 str=strrep(s1,s2,s3)获得字符串长度获得字符串长度 k=length(str)删除字符串尾部的空格删除字符串尾部的空格 deblank(str)字符串与双精度数的相互转换字符串与双精度数的相互转换 d=double(st
13、r),str=char(d)将矩阵变换成字符串表示将矩阵变换成字符串表示 mat2str(A)2.6 稀疏矩阵稀疏矩阵稀疏矩阵是一种特殊的矩阵,它的大部分元素都为零,只有少稀疏矩阵是一种特殊的矩阵,它的大部分元素都为零,只有少部分元素为非零,例如一个很大的单位矩阵。部分元素为非零,例如一个很大的单位矩阵。在在 MATLAB 中稀疏矩阵中一个元素占中稀疏矩阵中一个元素占 16 个字节的空间,个字节的空间,8个个字节表示该元素的值,用另两个字节表示该元素的值,用另两个4字节的整数表示其行列的值。字节的整数表示其行列的值。下面例子产生一个下面例子产生一个 100 X 100 的单位矩阵,用稀疏矩阵表
14、示的单位矩阵,用稀疏矩阵表示 a=speye(100)a=(1,1)1 (2,2)1 (3,3)1 (100,100)1 b=eye(100);whos Name Size Bytes Class a 100 x100 1604 sparse array b 100 x100 80000 double array2.7 矩阵的基本运算矩阵的基本运算变量类型测试变量类型测试k=iscell(C)TF=isnan(A)k=iscellstr(S)k=isnumeric(A)k=ischar(S)k=isobject(A)k=isempty(A)TF=isprime(A)k=isequal(A,B,
15、.)k=isreal(A)k=isfield(S,field)TF=isspace(str)TF=isfinite(A)k=issparse(S)k=isglobal(NAME)k=isstruct(S)TF=isinf(A)k=isstudentTF=isletter(str)k=isunixk=islogical(A)矩阵的矩阵的 Hermit转置转置 a=round(sqrt(10*rand(3,3)-5)+1+j),b=aa=2.0000+1.0000i 1.0000+2.0000i 1.0000+2.0000i 1.0000+2.0000i 1.0000+3.0000i 1.0000
16、+3.0000i 2.0000+1.0000i 1.0000+3.0000i 1.0000+2.0000ib=2.0000-1.0000i 1.0000-2.0000i 2.0000-1.0000i 1.0000-2.0000i 1.0000-3.0000i 1.0000-3.0000i 1.0000-2.0000i 1.0000-3.0000i 1.0000-2.0000i2.7 矩阵的基本运算矩阵的基本运算矩阵加减法,矩阵必须相同维数矩阵加减法,矩阵必须相同维数 a=magic(3);b=pascal(3);c=a+b;d=b-a;a b c dans=8 1 6 1 1 1 9 2 7
17、-7 0 -5 3 5 7 1 2 3 4 7 10 -2 -3 -4 4 9 2 1 3 6 5 12 8 -3 -6 42.7 矩阵的基本运算矩阵的基本运算矩阵乘法,两相乘的矩阵维数必须相容矩阵乘法,两相乘的矩阵维数必须相容 a=2 5 3,b=1 3;2 4;3 1,c=a*ba=2 5 3b=1 3 2 4 3 1c=21 292.7 矩阵的基本运算矩阵的基本运算矩阵左除矩阵左除 矩阵左除矩阵左除 AB 表示由表示由Gauss消去法获得线性方程消去法获得线性方程 AX=B 的的解解 X。亦即。亦即 XA1B。如果矩阵。如果矩阵 A 不是方阵,这是将使不是方阵,这是将使用作小二乘解法求取
18、用作小二乘解法求取AX=B 的解的解 X。a=2 4 3 5;1 4 5 2,b=3;2,c=aba=2 4 3 5 1 4 5 2b=3 2c=0 0 0.2105 0.47372.7 矩阵的基本运算矩阵的基本运算矩阵右除矩阵右除 矩阵右除矩阵右除 B/A 表示线性方程表示线性方程 XA=B 的解的解 X。矩阵。矩阵 A 为非为非奇异矩阵时奇异矩阵时 B/A 为为 BA1,更精确地有,更精确地有 B/A=(AB)。a=magic(3),b=2 3 1,b/aa=8 1 6 3 5 7 4 9 2b=2 3 1ans=0.0917 -0.0333 0.34172.7 矩阵的基本运算矩阵的基本运
19、算矩阵翻转矩阵翻转 fliplr(A),flipud(A),rot90(A)a=magic(4)a=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 b=fliplr(a);c=flipud(a);d=rot90(a);b c dans=13 3 2 16 4 14 15 1 13 8 12 1 8 10 11 5 9 7 6 12 3 10 6 15 12 6 7 9 5 11 10 8 2 11 7 14 1 15 14 4 16 2 3 13 16 5 9 42.7 矩阵的基本运算矩阵的基本运算矩阵乘方矩阵乘方 a=magic(3),b=a3a=8 1 6 3
20、 5 7 4 9 2b=1197 1029 1149 1077 1125 1173 1101 1221 10532.7 矩阵的基本运算矩阵的基本运算点运算点运算矩阵点运算即对应元素之间的运算,有时称为数组运算。矩阵点运算即对应元素之间的运算,有时称为数组运算。a=magic(3);b=pascal(3);a bans=8 1 6 1 1 1 3 5 7 1 2 3 4 9 2 1 3 6 c=a.*b;d=a./b;e=a.3;c d eans=8.0000 1.0000 6.0000 8.0000 1.0000 6.0000 512.0000 1.0000 216.0000 3.0000 1
21、0.0000 21.0000 3.0000 2.5000 2.3333 27.0000 125.0000 343.00004.0000 27.0000 12.0000 4.0000 3.0000 0.3333 64.0000 729.0000 8.00002.7 矩阵的基本运算矩阵的基本运算点运算点运算矩阵的点运算或数组运算应用很普遍,矩阵的点运算或数组运算应用很普遍,例如已知例如已知 x 为一向量,计算为一向量,计算 y=f(x)在在 x 对应点上的值,对应点上的值,这是这是 f(x)中的运算都必须是点运算。中的运算都必须是点运算。例如:例如:2.7 矩阵的基本运算矩阵的基本运算 x=0:0
22、.01:1;y=(sin(x).*cos(x).*exp(-5*x)+8)./(sin(2*pi*x)+x.2+1);plot(x,y)矩阵的逻辑运算矩阵的逻辑运算逻辑与逻辑与 或或 and(A,B)逻辑或逻辑或 或或 or(A,B)逻辑非逻辑非 或或 not(A)逻辑异或逻辑异或 xor(A,B)2.7 矩阵的基本运算矩阵的基本运算矩阵的逻辑运算都是对应元素之间的运算或其中一个为标矩阵的逻辑运算都是对应元素之间的运算或其中一个为标量,结果为同维数的矩阵,由量,结果为同维数的矩阵,由 0 和和 1 组成。组成。矩阵的比较关系矩阵的比较关系2.7 矩阵的基本运算矩阵的基本运算矩阵的比较关系都是对
23、应元素之间的比较关系或其中一个矩阵的比较关系都是对应元素之间的比较关系或其中一个为标量,结果为同维数的矩阵,由为标量,结果为同维数的矩阵,由 0 和和 1 组成。比较结果组成。比较结果为真取为真取 1,比较结果为假取,比较结果为假取 0。大于关系大于关系=小于或等于关系小于或等于关系=小于或等于关系小于或等于关系=不等于关系不等于关系另外几个有用的函数另外几个有用的函数find(X),all(X),any(X)矩阵元素的数据变换矩阵元素的数据变换2.7 矩阵的基本运算矩阵的基本运算floor(A)将将A中元素按中元素按方向取整,即取不足整数方向取整,即取不足整数ceil(A)将将A中元素按中元
24、素按方向取整,即取不足整数方向取整,即取不足整数round(A)将将A中元素按四舍五入取整中元素按四舍五入取整fix(A)将将A中元素按离中元素按离 0 近的方向取整近的方向取整n,d=rat(A)获获得矩得矩阵阵的有理数近似的有理数近似rem(A,x)求取矩求取矩阵阵元素的余数元素的余数2.8 综合例子与练习题综合例子与练习题例一、输入下面两个矩阵例一、输入下面两个矩阵例二、解线性方程组例二、解线性方程组2.8 综合例子与练习题综合例子与练习题例三、用简单的例三、用简单的MATLAB语句定义反对角单位阵,假设构语句定义反对角单位阵,假设构造单位阵的造单位阵的MATALB内在函数为内在函数为 eye(n)。例四、已知下面两个矩阵例四、已知下面两个矩阵1.A+5*B 和和 A-B+I 分别是多少?分别是多少?2.A.*B 和和 A*B 分别是多少?他们结果是否相同?为什么?分别是多少?他们结果是否相同?为什么?3.A.B、A/B 及及 AB 分别是多少?分别是多少?