MATLAB变量和数据操作

上传人:宝路 文档编号:48005282 上传时间:2018-07-08 格式:PPT 页数:38 大小:255.78KB
返回 下载 相关 举报
MATLAB变量和数据操作_第1页
第1页 / 共38页
MATLAB变量和数据操作_第2页
第2页 / 共38页
MATLAB变量和数据操作_第3页
第3页 / 共38页
MATLAB变量和数据操作_第4页
第4页 / 共38页
MATLAB变量和数据操作_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《MATLAB变量和数据操作》由会员分享,可在线阅读,更多相关《MATLAB变量和数据操作(38页珍藏版)》请在金锄头文库上搜索。

1、第2讲 变量和数据操作2.1 变量与赋值 2.2 内存变量的管理 2.3 MATLAB常用数学函数 2.4 MATLAB矩阵 2.5 M文件2.1 变量与赋值2.1.1 变量命名u 以字母开头u 后面可以跟 字母、数字 和 下划线u 长度不超过 63 个字符(6.5 版本以前为 19 个)u 变量名 区分字母的 大小 写2.1.2 赋值语句(1) 变量=表达式 (2) 表达式其中表达式是用运算符将有关运算量连 接起来的式子,其结果是一个矩阵。例2-1 计算表达式的值,并显示计算结果。在MATLAB命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(

2、78*pi/180)/(x+abs(y)其中pi和i都是MATLAB预先定义的变量, 分别代表代表圆周率和虚数单位。输出结果是:z =-0.3488 + 0.3286i2.1.3 预定义变量在MATLAB工作空间中,还驻留几个由 系统本身定义的变量。例如,用 pi 表示圆周率的近似值,用 i ,j 表示虚数单位。预定义变量有特定的含义,在使用时, 应尽量避免对这些变量重新赋值。2.2 内存变量的管理2.2.1 内存变量的删除与修改MATLAB 工作空间窗口专门用于内存 变量的管理。在工作空间窗口中可以显示所 有内存变量的属性。当选中某些变量后,再单击 Delete按钮 ,就能删除这些变量。当选

3、中某些变量后,再单击 Open 按钮 ,将进入变量编辑器。通过变量编辑器可以 直接观察变量中的具体元素,也可修改变量 中的具体元素。clear命令用于删除MATLAB工作空间中 的变量。who和whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清单 。who命令只显示出驻留变量的名称。whos在给出变量名的同时,还给出它们 的大小、所占字节数及数据类型等信息。2.2.2 内存变量文件利用 MAT文件可以把当前MATLAB工 作空间中的一些有用变量长久地保留下来, 扩展名是 .mat。MAT文件的生成和装入由save和load命 令来完成。常用格式为:save 文件名 变量名表

4、 -append-asciiload 文件名 变量名表 -ascii其中,文件名可以带路径,但不需带扩展 名.mat,命令隐含一定对.mat文件进行操作。变量名表中的变量个数不限,只要内存或 文件中存在即可,变量名之间以空格分隔。当 变量名表省略时,保存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略 该选项时文件将以二进制格式处理。save命令中的 append 选项控制将变量追 加到MAT文件中。2.2.3 数据的输出格式MATLAB 用十进制数表示一个常数, 具体可采用日常记数法和科学记数法两种表 示方法。在一般情况下,MATLAB 内部每一个 数据元素都是用双精度数来表

5、示和存储的。数据输出时用户可以用format命令设置 或改变数据输出格式。format命令的格式为 :format 格式符其中格式符决定数据的输出格式各种 format 格式格式解释例 format短格式(缺省显示格式),同short3.1416 format short短格式(缺省显示格式),只显示5位3.1416format long长格式,双精度数15位,单精度数7位3.14159265358979format short e短格式e方式(科学计数格式)3.1416e+000format long e长格式e方式3.141592653589793e+000format short g短格

6、式g方式3.1416format long g长格式g方式3.14159265358979 format compact压缩 格式format loose自由格式 format + / format bank / format rat / format hex (详情查看联机帮助)2. 3 MATLAB常用数学函数MATLAB 提供了许多数学函数,函数 的自变量规定为矩阵变量,运算法则是将函 数逐项作用于矩阵的元素上,因而运算的结 果是一个与自变量同维数的矩阵。Matlab中常见数学函数sin、cos、tan、cot、sec、csc、 asin、acos、atan、acot、asec、acsc

7、、 exp、log、log2、log10、sqrt abs、conj、real、imag、sign fix、floor、ceil、round、mod、rem max、min、sum、mean、sort、fft norm、rank、det、inv、eig、lu、qr、svd 函数使用说明:(1) 三角函数以弧度为单位计算。(2) abs 函数可以求实数的绝对值、复数 的模、字符串的ASCII码值。(3) 用于取整的函数有 fix、floor、ceil、 round,要注意它们的区别。(4) rem与 mod函数的区别。rem(x,y)和 mod(x,y) 要求 x, y 必须为相同大小的实矩阵

8、或为标量。q 系统预定义变量u pi 圆周率 ,其值为 imag(log(-1)u inf/Inf 无穷大 u nan/NaN Not-a-Number,一个不定值,如 0/0u eps 浮点运算相对精度 q 特殊变量 ansu i/j 虚部单位,即应尽量避免给系统预定义变量重新赋值!2.3.2 MATLAB特殊变量表2.4.1 向量与矩阵的生成u 向量的生成 直接输入: a=1,2,3,4 冒号运算符a=1:4 = a=1, 2, 3, 4b=0:pi/3:pi = b=0, 1.0472, 2.0944, 3.1416c=6:-2:0 = c = 6, 4, 2, 0例: 从矩阵中抽取行或

9、列2.4 MATLAB矩阵q 向量与矩阵的生成(续)向量与矩阵运算u 矩阵的生成 直接输入: A=1, 2, 3; 4, 5, 6; 7, 8, 9 由向量生成 由函数生成 通过编写m文件生成例: x=1,2,3;y=2,3,4; A=x,y, B=x;y例: C=magic(3)常见矩阵生成函数zeros(m,n)生成一个 m 行 n 列的零矩阵阵,m=n 时时可简简写为为 zeros(n)ones(m,n)生成一个 m 行 n 列的元素全为为 1 的矩阵阵, m=n 时时可写为为 ones(n) eye(m,n)生成一个主对对角线线全为为 1 的 m 行 n 列矩阵阵, m=n 时时可简简

10、写为为 eye(n),即为为 n 维单维单 位矩阵阵 diag(X)若 X 是矩阵阵,则则 diag(X) 为为 X 的主对对角线线向量 若 X 是向量,diag(X) 产产生以 X 为为主对对角线线的对对角矩阵阵tril(A)提取一个矩阵阵的下三角部分triu(A)提取一个矩阵阵的上三角部分 rand(m,n)产产生 01 间间均匀分布的随机矩阵阵 m=n 时简时简 写为为 rand(n)randn(m,n)产产生均值为值为 0,方差为为1的标标准正态态分布随机矩阵阵 m=n 时简时简 写为为 randn(n)2.4.2 矩阵的拆分 1. 矩阵元素通过下标引用矩阵的元素,例A(3,2)=20

11、0采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排 列顺序。在 MATLAB 中,矩阵元素按列存 储,先第一列,再第二列,依次类推。例如 A=1,2,3;4,5,6;A(3)ans =2显然,序号(Index)与下标(Subscript )是 一一对应的,以mn矩阵A为例,矩阵元素 A(i,j) 的序号为 (j-1)*m+i。其相互转换关系 也可利用sub2ind和ind2sub函数求得。2. 矩阵拆分(1) 利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素; A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示 取A矩阵第i行、第j列的元素。

12、A(i:i+m,:)表示取A矩阵第ii+m行的全 部元素;A(:,k:k+m)表示取A矩阵第kk+m列 的全部元素,A(i:i+m,k:k+m)表示取A矩阵第 ii+m行内,并在第kk+m列中的所有元素 。此外,还可利用一般向量和end运算符来 表示矩阵下标,从而获得子矩阵。end表示某 一维的末尾元素下标。(2) 利用空矩阵删除矩阵的元素在MATLAB中,定义 为空矩阵。给变 量X赋空矩阵的语句为X= 。注意,X= 与clear X不同,clear是将X 从工作空间中删除,而空矩阵则存在于工作 空间中,只是维数为0。2.4.3 特殊矩阵1. 通用的特殊矩阵常用的产生通用特殊矩阵的函数有:ze

13、ros:产生全0矩阵(零矩阵)。ones:产生全1矩阵(幺矩阵)。eye:产生单位矩阵。rand:产生01间均匀分布的随机矩阵 。randn:产生均值为 0,方差为 1的标准 正态分布随机矩阵。例2-3 分别建立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同样 大小的零矩阵例2-4 建立随机矩阵:(1) 在区间20,5

14、0内均匀分布的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的二维矩阵。2. 用于专门学科的特殊矩阵(1) 魔方矩阵魔方矩阵有一个有趣的性质,其每行、每 列及两条对角线上的元素和都相等。对于 n 阶 魔方阵,其元素由 1,2,3,n2 共 n2 个整数组 成。MATLAB提供了求魔方矩阵的函数 magic(n),其功能是生成一个n阶魔方阵。例2-5 将1011

15、25等25个数填入一个5行5列的 表格中,使其每行每列及对角线的和均为565 。M=100+magic(5)(2) 范得蒙矩阵范得蒙(Vandermonde)矩阵最后一列全为1 ,倒数第二列为一个指定的向量,其他各列是 其后列与倒数第二列的点乘积。可以用一个指 定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向 量V为基础向量的范得蒙矩阵。例如,A=vander(1;2;3;5)即可得到上述 范得蒙矩阵。(3) 希尔伯特矩阵在MATLAB中,生成希尔伯特矩阵的函 数是hilb(n)。使用一般方法求逆会因为原始数据的微 小扰动而产生不可靠的计算结果。MATLAB 中,有一

16、个专门求希尔伯特矩阵的逆的函数 invhilb(n),其功能是求 n阶的希尔伯特矩阵 的逆矩阵。例2-6 求4阶希尔伯特矩阵及其逆矩阵。命令如下:format rat %以有理形式输出H=hilb(4)H=invhilb(4)(4) 托普利兹矩阵托普利兹(Toeplitz)矩阵除第一行第一列外 ,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y), 它生成一个以x为第一列,y为第一行的托普利 兹矩阵。这里x, y均为向量,两者不必等长。 toeplitz(x)用向量x生成一个对称的托普利兹矩 阵。例如 T=toeplitz(1:6)(5) 伴随矩阵MATLAB生成伴随矩阵的函数是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号