第2章 MATLAB数据及其运算
第2章 MATLAB数据及其运算
③也可以采用矩阵元素的序号来引用矩阵元素。矩 阵元素按列编号,先第一列,再第二列,依次类 推。 显然,下标(subscrip)与序号(index)是一一对 应的。以m×n矩阵A为例,矩阵元素A(i,j)的序 号为 (j-1)*m+i。其相互转换关系也可利用 sub2ind和ind2sub函数求得 sub2ind(size(A),2,3) %已知行列,求序号 [c,d]=ind2sub(size(A),6) %已知序号,求行 列 还可利用reshape(A,m,n)在矩阵总元素不变的前 提下,将矩阵重排
2、赋值语句
(1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如果在语句的最 后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运 算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面 是注释的内容。 例2.1 计算表达式的值,并将结果赋给变量x,然后显示 出结果。 在MATLAB命令窗口输入命令:
linspace(a,b,n)与a:(b-a)/(n-1):b等价。
logspace函数生成从10a到10b之间按对数等分的 n个元素的行向量,n如果省略则默认值为50。
21
2.3.3 矩阵的拆分
1. 矩阵元素
①MATLAB允许用户对一个矩阵的单个元素进行赋 值和操作。例如: A=ones(4);A(3,2)=200 只改变该元素的值,而不影响其他元素的值。 ② 如果给出的行下标或列下标大于原来矩阵的行数 和列数,则MATLAB将自动扩展原来的矩阵,并将 扩展后未赋值得矩阵元素置为0。例如: A(5,6)=10
10
2.2.3 数据的输出格式
MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 在命令窗口中,默认情况下当数值为整数时, 数值计算的结果以整数显示;当数值为实数 时,以小数点后四位的精度近似显示,即以 短(short)格式显示;如果数值超过这一范 围,则以科学计数法显示结果。
MATLAB数据及运算.
2.2.2 变量的管理 1.内存变量的显示与删除 who和whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清 单。who命令只显示出驻留变量的名称, whos在给出变量名的同时,还给出它们的 大小、所占字节数及数据类型等信息。
clear命令用于删除MATLAB工作空间中的变量。 MATLAB工作空间窗口专门用于内存变量的管理。 在工作空间窗口中可以显示所有内存变量的属性。 当选中某些变量后,再单击Delete按钮,就能删 除这些变量。当选中某些变量后,再单击Open Selection按钮,将进入变量编辑器。通过变量编 辑器可以直接观察变量中的具体元素,也可修改 变量中的具体元素。
例2.1 计算表达式 1 7 2i 的值,并显示计 算结果。 在MATLAB命令窗口输入命令: x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) 其中pi和i都是MATLAB预先定义的变量, 分别代表代表圆周率π和虚数单位。
5 cos47
3. 预定义变量 在MATLAB工作空间中,还驻留几个由系 统本身定义的变量。例如,用pi表示圆周率 π的近似值,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应 尽量避免对这些变量重新赋值。
第2章 MATLAB数据及其运算
2.1 MATLAB数据的特点 2.2 变量及其操作 2.3 MATLAB矩阵的表示
2.4 MATLAB数据的运算
2.5 字符串
2.6 结构数据和单元数据
2.1 MATLAB数据的特点
矩阵是MATLAB最基本、最重要的数 据对象,MATLAB的大部分运算或命令都 是在矩阵运算的意义下执行的,而且这种 运算定义在复数域上。向量和单个数据都 可以作为矩阵的特例来处理。 数值数据:双精度型(double)、单精度数 (single)、带符号整数和无符号整数。 字符数据(用char函数实现)。 结构体(Structure)和单元(Cell)数据类型。 稀疏矩阵(Sparse)。 逻辑型数据。在MATLAB中,以数值1(非 零)表示“真”,以数值0表示“假”。
第2章_MATLAB的基本操作1
MATLAB数据类型
浮点数
浮点数
单精度浮点数(4字节)
双精度浮点数(8字节默认)
转换函数: single(x),double(x)
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
2. 矩阵拆分
A(i,j) 第i行、第j列元素 第i行的全部元素 第i~i+m行的全部元素
A(i,:)
A(i:i+m,:)
A(i:i+m,k:k+m)
A(i:end,:)
第i~i+m行内第k~k+m列元素 第i行到最后一行的全部元素
(三) 矩阵元素的修改
(1) 直接修改
可用↑键找到所要修改的矩阵,用←移动到需 要修改的矩阵元素上即可修改
使用struct函数产生结构体: struct_name = struct(‘field1’,value1,‘field2’,value2,…..)
MATLAB数据类型
细胞变量(细胞数组)cell
MATLAB从5.0版开始引入了一种新的数据类型 ---细胞(cell),该结构把不同属性的数据纳入 到一个变量中。 普通数组中的每个元素都必须具有相同的属性, 而细胞则没有此要求。 细胞变量的表示方法类似于带有下标的数组, 但这些下标不是用圆括号括起来,而是用大括 号括起来。
char(字符型) logical(逻辑型) cell(单元型) struct(结构)
第2章--MATLAB数据及其运算-习题答案教学内容
第2章--M A T L A B数据及其运算-习题答案第2章 MATLAB数据及其运算习题2一、选择题1.下列可作为MATLAB合法变量名的是()。
D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。
CA.+10 B.1.2e-5 C.2e D.2i3.使用语句t=0:7生成的是()个元素的向量。
A A.8 B.7 C.6 D.54.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。
B A.1 B.2 C.3 D.45.已知a为3×3矩阵,则a(:,end)是指()。
D A.所有元素 B.第一行元素C.第三行元素 D.第三列元素6.已知a为3×3矩阵,则运行a (1)=[]后()。
A A.a变成行向量 B.a变为2行2列C.a变为3行2列 D.a变为2行3列7.在命令行窗口输入下列命令后,x的值是()。
B >> clear>> x=i*jA.不确定 B.-1 C.1 D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。
D A.34 B.354 C.453 D.439.下列语句中错误的是()。
BA.x==y==3 B.x=y=3C.x=y==3 D.y=3,x=y10.find(1:2:20>15)的结果是()。
CA.19 20 B.17 19C.9 10 D.8 911.输入字符串时,要用()将字符括起来。
C A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。
A A.9 B.11 C.7 D.1813.eval('sqrt(4)+2')的值是()。
BA.sqrt(4)+2 B.4 C.2 D.2, 214.有3×4的结构矩阵student,每个结构有name(姓名)、scores(分数)两个成员,其中scores是以1×5矩阵表示的5门课的成绩,那么要删除第4个学生的第2门课成绩,应采用的正确命令是()。
第二章 MATLAB数值计算
数值
复数 z=a+b*i或z=a+b*j z=a+bi或z=a+bj(当b为标量时) z=r*exp(i*theta) 得出一个复数的实部、虚部、幅值和相角。 a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 theta=angle(z) %计算相角
变量
矩阵和数组运算
diag(X)产生X矩阵的对角阵 [l,u]=lu(X)方阵分解为一个准下三角方阵和一个上三 角方阵的乘积。l为准下三角阵,必须交换两行才能成 为真的下三角阵。 [q,r]=qr(X) m×n阶矩阵X分解为一个正交方阵q和一个 与X同阶的上三角矩阵r的乘积。方阵q的边长为矩阵X的 n和m中较小者,且其行列式的值为1。 [u,s,v]=svd(X) m×n阶矩阵X分解为三个矩阵的乘积, 其中u,v为n×n阶和m×m阶正交方阵,s为m×n阶的对角 阵,对角线上的元素就是矩阵X的奇异值,其长度为n和 m中的较小者。
第二章
MATLAB数值计算
2.1 变量和数值
数据类型
数据类型包括:数值型、字符串型、元胞型、结构 型等 数值型=双精度型、单精度型和整数类 整数类=无符号类(uint8、uint16、uint32、uint64)和 符号类 (int8、int16、int32、int64)
数值
数据的表达方式 可以用带小数点的形式直接表示 用科学计数法 数值的表示范围是10-309~10309。 以下都是合法的数据表示: -2、5.67、2.56e-56(表示2.56×10^-56)、 4.68e204(表示4.68×10^204)
E1=tril(A) E2=tril(A,1) D=triu(A) E=triu(A,-1)
第2章 MATLAB数据及其运算
第2章 MATLAB数据及其运算习题2一、选择题1.下列可作为MA TLAB合法变量名的是( D )。
A.合计B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是( C )。
A.+10 B.1.2e-5 C.2e D.2i3.使用语句t=0:7生成的是( A )个元素的向量。
A.8 B.7 C.6 D.54.执行语句A=[1,2,3;4,5,6]后,A(3)的值是( B )。
A.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指( D )。
A.所有元素B.第一行元素C.第三行元素D.第三列元素6.已知a为3×3矩阵,则运行a (1)=[]后( A )。
A.a变成行向量B.a变为2行2列C.a变为3行2列D.a变为2行3列7.在命令行窗口输入下列命令后,x的值是( B )。
>> clear>> x=i*jA.不确定B.-1 C.1D.i*j 8.fix(354/100)+mod(354,10)*10的值是( D )。
A.34 B.354 C.453D.43 9.下列语句中错误的是( B )。
A.x==y==3 B.x=y=3C.x=y==3 D.y=3,x=y10.find(1:2:20>15)的结果是( C )。
A.19 20 B.17 19C.9 10 D.8 911.输入字符串时,要用( C )将字符括起来。
A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是( A )。
A.9 B.11 C.7 D.1813.eval('sqrt(4)+2')的值是( B )。
A.sqrt(4)+2 B.4 C.2 D.2,214.有3×4的结构矩阵student,每个结构有name(姓名)、scores(分数)两个成员,其中scores是以1×5矩阵表示的5门课的成绩,那么要删除第4个学生的第2门课成绩,应采用的正确命令是( D )。
MATLAB基础教程第2章
第二章 数组、矩阵及其运算
2.1 数组的创建和寻访
例2-2 一维数组的生成与访问
命令:X=rand(1,5) 命令:X(3) 命令:X([1 2 5]) 命令:X(1:3) 命令:X(3:end) 命令:X(3:-1:1) 命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.2 矩阵的运算
例2-6 矩阵的乘法(接着上面的例子) A*B 3*A
注意:矩阵相乘时要求A的列数等于B的行数
第二章 数组、矩阵及其运算
2.2 矩阵的运算
A/B(矩阵右除)表示的是方程X*B=A的解 A\B(矩阵左除)表示的是方程A*X=B的解
例2-7 矩阵的除法( 见教材P.23)
第二章 数组、矩阵及其运算
2.3 数组的运算
1、数组的基本运算
例2-8 ( 见教材P.25)
第二章 数组、矩阵及其运算
2.3 数组的运算
数组运算和矩阵运算指令对照表
数组运算 指令 A.’ A=s A+s,A-s s.*A s./A,A.\s A.^n A+B,A-B A.*B A./B B.\A 含义 非共轭转置,相当于conj(A’) 把标量s赋给A中每个元素 标量s分别于A的元素之和(差) 标量s分别于A的元素之积 S分别被A的元素除 A的每个元素自乘n次 对应元素相加(减) 对应元素相加(乘) A的元素被B的对应元素相除 (与上相同) A^n A+B,A-B A*B A /B B\A 方阵A自乘n次 矩阵和(差) 同内维矩阵相乘 A右除B A左除B S*A 标量s分别于A的元素之积 A’ 指令 共轭转置 矩阵运算 含义
第二章 数组、矩阵及其运算
第2章 MATLAB数据及其运算.
8 1 d 3 5
(2)利用空矩阵删除矩阵的元素 a=[ ] a的维数为0。 例:a( 2 , : )= [ ]; 8 1 6 得: 3 5 7 a a= 4 9 2 8 1 6 4 9 2
2.3.5
复数(Com part)和虚部(imaginary part)组 成。 虚数单位用i或j来表示。 6+5i = 6+5j
format bank format rat
2.3 MATLAB矩阵的表示
2.3.1 矩阵 MATLAB中最基本的数据结构是矩阵(matrix)。 1*1的矩阵----标量(scalar): [5] 只有一行或一列的矩阵-----向量(vector): [1 3 5 7]
2 4 6 8
2.4 Matlab数据的运算(Operators ) 运算符(Operators )
+ Addition
*
Subtraction
Multiplication
/
\
Division
Left division
^
Power
2.4.1 算术运算 (1)矩阵加减运算: 两个同维矩阵,才能进行加减运算,对应无素相加减。 一个标量与矩阵相加减时,结果为这个标量与矩阵的 每一个元素相加减。 x=[2,-1,0;3 2 -4]; y=ones(2,3); x-y=? [1,-2,-1;2,1,-5] x+1=? [3,0,1;4,3,-3]
在线性代数中,本没有矩阵除法,它是由逆 矩阵引申来的。 MATLAB中,矩阵求逆(Matrix inverse)的函 数为: Y = inv(X) 方程A*X=B的解为:X=inv(A)*B=A\B, A\B称为A左除B,左除时要求两矩阵行数相等。 方程X*A=B的解为:X=B*inv(A)=B/A, A/B称为A右除B,右除时要求两矩阵列数相等。
MATLAB-第二章基本运算
提问:什么是复数的共轭值?
第二章 MATLAB的基本运算
实战11:函数 sin
功能 正弦函数 格式 Y = sin(X) % 计算参量X(可以是向量、矩阵,元素可以是复数) % 中每一个角度分量的正弦值Y
第二章 MATLAB的基本运算 一、基本运算 2 format命令(page3, 表1-2)
用pi来测试一下精度: >>pi >>format short >>pi >>format long >>pi >>format rat >>pi
第二章 MATLAB的基本运算 二、变量
变量——程序执行过程中可以变化的量。
MATLAB中的变量可以由用户指定变量名。 通过变量名随时可以引用变量和修改变量。
第二章 MATLAB的基本运算 二、变量
MATLAB特殊之处:无需进行变量声明。
(遇到新变量名时,自动生成变量, 并指定合适的存储空间。 如变量早已存在,则自动更新。) ***利与弊的分析***
第二章 MATLAB的基本运算 二、变量 1.系统特殊变量
第二章 MATLAB的基本运算
小整理:MATLAB常用的基本数学函数
sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的余数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数 log2(x):以2为底的对数 log10(x):以10为底的对数
第02章 MATLAB数据及其运算
例 >>x=1.234567890 x= 1.2346
例 >>x=1.234567890; >>format long >>x x= 1.23456789000000
例 >>x=1234567890 x= 1.2346e+9
例 >>x=1234567890; >> format long e x= 1.23456789000000e+9
例2:计算下式的结果,其中x=-3.5°, y=6.7°。 计算下式的结果,其中x=-3.5° y=6.7° x=
sin( x + y ) cos( x + y )
>>x=(-3.5)*pi/180; >>x=(>>y=6.7*pi/180; >>z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y))) z= 0.1772
六、清屏和退出
清屏: 清屏: clc:清除命令窗口的所有显示内容; clc:清除命令窗口的所有显示内容; 退出MATLAB: 退出MATLAB: (1)单击MATLAB命令窗口的“关闭”按钮。 (1)单击MATLAB命令窗口的“关闭”按钮。 单击MATLAB命令窗口的 (2)在命令窗口File菜单中选Exit MATLAB命令 命令。 (2)在命令窗口File菜单中选Exit MATLAB命令。 在命令窗口File菜单中选 (3)在MATLAB命令窗口输入Exit或Quit命令。 (3)在MATLAB命令窗口输入Exit或Quit命令。 命令窗口输入Exit 命令
MATLAB赋值语句 四、MATLAB赋值语句
第2章 MATLAB数据及其运算
2.1 数据类型 2.2 矩阵描述 2.3 数据运算 2.4 字符串 2.5 单元数组 2.6 结构型变量
2
2.1 MATLAB数据类型
矩阵是MATLAB最基本、最重要的数据对象,大部 分运算或命令都是在矩阵运算的意义下执行的。向量 和单个数据都可以作为矩阵的特例来处理。
在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算 优先级最低。
5. MATLAB常用数学函数 数学函数使用说明: (1)三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模、字符串的 ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、round
(4) 求余的函数rem与mod函数。rem(x,23,-3)=-1, rem(23,-3)=2 mod(23, 3)=rem(23, 3)=2
例2-3 在[0,3π]区间,求y=sin(x)的值。要求: (1)消去负半波,即(π,2π)区间内的函数值置0。 (2)(π/3, 2π/3 )和( 7π/3, 8π/3 )区间内取值
均为sin π/3 。 先根据自变量向量x产生函数值向量y,然后按要 求对y进行处理。处理的思路有两个:一是从自变 量着手进行处理,二是从函数值着手进行处理。
字符)
class(b)
% 对变量b的类别进行判断
b_s=size(b)
% 符号数组b的大小
b = Students
ans = char
b_s = 8
结果告诉我们,数组b是一个字符串数组“char”,维数是1×8。
常量和变量 浮点数和复数 字符串 数组 结构体(Structure)和单元(Cell)数据类型。 逻辑型数据。在MATLAB中,以数值1(非零)表示
MATLAB数据及其运算
字符数据:
逻辑型数据:在MATLAB中,以数值1(非零)表示“真”,以数 值0表示“假”。
函数句柄(Function Handles):(指向函数的指针)
较复杂的数据类型
数组(arrays):一维数组、二维数组、多维数组。 结构体(Structure) 和 单元(Cell)数据类型。 类(Classes):
13
2.3.2 冒号表达式
冒号表达式可以产生一个 行向量,一般格式是:
e1: e2: e3 其中e1为初始值,e2为步长(缺省时表示为1),e3 为终止值。
在MATLAB中,还可以用 linspace函数产生 行向量。 其调用格式为:
可编辑ppt
7
2.内存变量文件 利用MAT文件可以把当前MATLAB工作空间
中的一些有用变量长久地保留下来,扩展名 是.mat。MAT文件的生成和装入由save和load命 令来完成。常用格式为:
save 文件名 [变量名表] [-append] [-ascii]
文件名可以
带路径,但
不需带扩展 名.mat,命 令隐含一定 对.mat文件 进行操作。
作为整 体直接 参加某 些运算
最基本、最重要的数据对象(数据结构)
矩阵(Matrix) 是MATLAB最基本、最重要的数据对象, MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的, 而且这种运算定义在 复数域 上。(用 二维数组 存储或表示)
向量 和 单个数据 都可以作可为编矩辑pp阵t 的特例来处理。
format 格式符 其中格式符决定数据的输出格式
可编辑ppt
10
2.3 MATLAB矩阵的表示
2.3.1 矩阵的建立 1.直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩 阵的元素。具体方法如下:将矩阵的元素用方括 号括起来,按矩阵行的顺序输入各元素,同一行 的各元素之间用 空格或 逗号 分隔,不同行的 元素之间用分号或 回车符 分隔。
第二章 MATLAB基础知识
2.2 数组及其运算
例 ascii_a=double(a) %将字符转换为相应的双精度值 ascii_a = Columns 1 through 13 84 104 105 115 32 105 115 32 97 110 32 101 120 Columns 14 through 19 97 109 112 108 101 46 例 char(ascii_a) %将双精度值转换为字符 ans = This is an example. 例 w=find(a>=‘a’&a<=‘z’); %查找所有小写字母的位置 ascii_a(w)=ascii_a(w)-32; %将小写字母ascii值转换为大写 char(ascii_a) %将双精度值转换为字符 ans = THIS IS AN EXAMPLE.
2.2 数组及其运算
2.2.2 数组的运算
运算 加 运算符 + 表达式 a+b
减 乘 除 幂 点乘 点除 点幂
*
/或\ ^ .* ./或.\ .^
a-b a*b
a/b或a\b a^b a .* b a ./ b或a.\b a.^b
2.2 数组及其运算
例 a=3 14 7 1 4 9 3 6 10 b=2 8 3 2 10 0 11 2 7 a+b ans= 5 22 10 3 14 9 14 8 17
2.2 数组及其运算
高维数组的创建
直接通过“全下标”元素赋值方式创建高维数组; 由若干个同样大小的低维数组组合成高维数组; 由函数ones、zeros、rand、randn直接创建标准
高维数组;
借助cat、repmat、reshape等函数构造高维数组。
Am
MATLAB课件第二章 MATLAB语言的数值计算
2.1.3 变量精度
在matlab中,变量的精度问题不需要设 定,一律使用双精度,但是我们可以通过 format命令或者更改preferences中的 Numericformat项来更改数据的显示格式. 命令格式为:format short
2.1.4 永久变量
Matlab语言设置了一些永久变量 eps,pi,Inf,NaN,i,j,nargin,nargout, realmax,realmin (1)这些变量不能被clear清除; (2)这些变量不响应who和whos; (3)nargin,nargout为函数变量; (4)pi,i,j,realmax,realmin为机器常数变 量; (5)Inf 为无穷变量,NaN为非数变量.
2、矩阵乘()运算规则:
A矩阵的列数必须等于B矩阵的行数;
标量可与任何矩阵相乘。
除算) .^ 点乘方(用于矩阵点运算) ./ 点除(用于矩阵点运算) kron 张量积 ‘ 矩阵转置 inv 矩阵求逆 fliplr 矩阵左右翻转 flipud 矩阵上下翻转 rot90 矩阵逆时针方向旋转90度
线性代数方程组的表达式为AX = B或者 XA = B,由于矩阵维数的不同,方程组解 的形式也不同,设解向量X为n×1维的,系 数矩阵A的维数为m×n维的,系数矩阵B 的维数为n×1维的;那么方程组的解可以 分为以下三类: m=n,为恰定方程,可求得唯一解; m>n,为超定方程,求最小二乘解,多 于一组解; m<n,为欠定方程,解无实际意义,解 中至多有m个非零元素。
例2.27 已知矩阵a,求特征多项式与特征根。
3、多项式计算 我们可以利用polyval函数来计算出多项 式在指定点处的值,例如:
4、卷积和反卷积(多项式乘法与除法) 例如:求a(x)=x^3+2x^2+3x+4和 b(x)=x^3+4x^2+9x+16的乘积c(x);
Matlab基础及其应用 第2章 MATLAB数据对象
y=
0.5690 + 1.3980i
2.2 变量及其操作
2.2.1 变量与赋值
3.预定义变量
MATLAB基础与应用教程
2.2 变量及其操作
MATLAB基础与应用教程
2.2.2 变量的管理
1.内存变量的显示与修改
who函数按字母顺序列出当前工作区中的所有变量,whos函 数工作区中按字母顺序列出当前工作区中的所有变量及大小、 类型。
2.2 变量及其操作
MATLAB基础与应用教程
2.2.1 变量与赋值
1.变量命名 在MATLAB中,变量名是以字母开头,后跟字母、数字或下划 线的字符序列,最多63个字符。 变量名区分字母的大小写。 不能使用MATLAB的关键字作为变量名。
2.2 变量及其操作
MATLAB基础与应用教程
2.2.1 变量与赋值
构建二维字符数组可以使用创建数值数组相同的方法matlab基础与应用教程25字符数据及操作251字符向量与字符数组matlab还有许多与字符处理有关的函数matlab基础与应用教程25字符数据及操作例22建立一个字符串向量然后对该向量做如下处理
MATLAB基础与应用教程
第2章 MATLAB数据对象
【本章学习目标】 掌握MATLAB数据对象的特点。 掌握变量的创建与管理。 掌握矩阵的生成、转换与运算。 掌握MATLAB基本的运算规则。
0 -2 -4 -6 -8
2.3 MATLAB数组
MATLAB基础与应用教程
2.3.1 构造数组
2.构造行向量 用linspace函数构建线性等间距的行向量,logspace函数构 建对数等间距的行向量: linspace(a, b, n) logspace(a, b, n) 其中,参数a和b是生成向量的第1个和最后1个元素,选项n 指定向量元素个数。当n省略时,默认生成100个元素。
第2章 MATLAB数据及其运算
在一般情况下,MATLAB内部每一个数据 元素都是用双精度数来表示和存储的。
数据输出时用户可以用format命令设置或 改变数据输出格式。format命令的格式为:
format 格式符 其中格式符决定数据的输出格式
见P21表2.2
2.3 MATLAB矩阵的表示
201,202,203,204,205,206,207,208,209;
301,302,303,304,305,306,307,308,309] (2) 把输入的内容以纯文本方式存盘(设文件名
为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即
运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
实现矩阵的加减运算。
运算规则是:若A和B矩阵的维数相同,则 可以执行矩阵的加减运算,A和B矩阵的相应元 素相加减。
如果A与B的维数不相同,则MATLAB将给 出错误信息,提示用户两个矩阵的维数不匹配。
一个标量也可以个矩阵A和B,若A为m×n矩阵 ,B为n×p矩阵,则C=A*B为m×p矩阵。
(1) 变量=表达式 MATLAB将右边表达式的值赋给左边的变量 (2) 表达式 MATLAB将表达式的值赋给预定义变量ans
例2.1 计算表达式 5 c o s 4 7 o 的值。
1 7 2i 在MATLAB命令窗口输入命令:
x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)
此外,还可利用一般向量和end运算符来 表示矩阵下标,从而获得子矩阵。end表 示某一维的末尾元素下标。
•A(end,:)
•A([1 4],3:end)
第2章-Matlab基本数据类型及运算
2021/5/23
31
格式化字符
字符
说明
%c
显示内容为单一的字符
%d
有符号的整数
%e
科学计数法,使用小写的e
%E
科学计数法,使用大写的E
%f
浮点数据
%g
不定,在%e或者%f之间选择一种形式
%G
不定,在%E或者%f之间选择一种形式
任何数值都可以参与逻辑运算 非零值看作逻辑真 零值看作逻辑假
逻辑类型的数据只能通过数值类型转换,或者使用特殊的 函数生成相应类型的数组或者矩阵
2021/5/23
15
创建逻辑类型数据的函数
函数 logical
True False
说明
将任意类型的数组转变为逻辑类型 数组,其中非零元素为真,零元素 为假 产生逻辑真值数组
>> eps ans =
2.2204e-016
>> realmax ans =
1.7977e+308
>> realmin ans =
2.2251e-308
2021/5/23
9
▪ 常量数值可以修改
>> pi=100 pi =
100
>> clear
>> pi ans =
3.1416
2021/5/23
10
32767
2021/5/23
11
数据类型
说明
double single uint8 uint16 uint32 uint64 int8 int16 int32 int64
第2章 MATLAB数据及其运算
第2章 MATLAB数据及其运算2.1 变量和数据操作2.2 MATLAB矩阵2.3 MATLAB运算2.4 矩阵的超越函数2.5 字符串2.6 结构体和单元数据2.7 稀疏矩阵2.1 变量和数据操作MATLAB的数据类型有数值型、字符型、结构体、单元等类型。
以上各种类型的数据都以矩阵的形式存在,所以矩阵 MATLAB的基本运算对象。
MATLAB的大部分运算或命令都是在矩阵的运算的意义下执行的,而且这种运算定义在复数域上。
在一般情况下,矩阵里的每个元素必须具有相同的数据类型。
对于MATLAB最常用的双精度型实数,双精度占64位(8个字节),用 double 实现类型转换。
此外还有单精度,占32位(4个字节),用single函数实现转换。
还有带符号整数和无符号整数,其其转换函数为int8,int16,int32,int64,uint8,ruint16,uint32,uint64等,函数名最后的一个数字表示的是相应的数据类型所占的位数。
除数值型数据以外,还有字符型数据,在MATLAB中用char实现转换。
在实际应用中,还需要将不同类型的数据构成矩阵的元素。
为此,MATLAB提供了结构体(structure)和单元(cell)数据类型。
此外,还有多维矩阵和工程中使用十分广泛的稀疏矩阵。
在用MATLAB进行程序设计时,还有一类很重要的数据类型,即逻辑型数据。
在MATLAB中,没有专门的逻辑型数据,而以数值1(或非0数)表示真,以数值0表示假,这一点和C语言的规则是一样的。
在输出格式中还可以用类似于C语言的格式符。
2.1.1 变量与赋值1.变量命名在MATLAB 7.0中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
在MATLAB中,变量名区分字母的大小写。
MATLAB函数与命令必须用小写。
2.赋值语句(1) 变量=表达式(2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4/43
例2.1 计算表达式的值, 并显示计算结果。 在MATLAB命令窗口输入命令: x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) 其中pi和i都是MATLAB预先定义的变量,分 别代表圆周率π和虚数单位。
5/43
3. 预定义变量 在MATLAB工作空间中,还驻留几个 由系统本身定义的变量。例如,用pi表示圆 周率π的近似值,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应 尽量避免对这些变量重新赋值。(见表2.1)
16/43
2.3.3 矩阵的拆分
1.矩阵元素 通过下标引用矩阵的元素,例如 A(3,2)=200 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元
素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再 第二列,依次类推。
例如 A=[1,2,3;4,5,6]; A(3) ans =2 显然,序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为 例,矩阵元素A(i,j)的序号为(j-1)*m+i。 即 A(i,j)==A((j-1)*m+i) 其相互转换关系也可利用sub2ind和ind2sub函数求得。 reshape(A,m,n)变维函数 Note:矩阵存储采用列优先方式
2.2 变量及其操作
2.2.1 变量与赋值 1.变量命名 在MATLAB 7.0中,变量名是以字母开头, 后接字母、数字或下划线的字符序列,最 多63个字符。在MATLAB中,变量名区分 字母的大小写。(namelengthmax) Note:用户定义建议用大写字母
3/43
2.赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连 接起来的式子,其结果是一个矩阵。
21/43
(2) 矩阵乘法 假定有两个矩阵A和B,若A为m×n矩 阵,B为n×p矩阵,则C=A*B为m×p矩阵。
22/43
(3) 矩阵除法 在MATLAB中,有两种矩阵除法运算:\和/, 分别表示左除和右除。如果A矩阵是非奇异方阵, 则A\B和B/A运算可以实现。A\B等效于A的逆左 乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵 的逆右乘B矩阵,也就是B*inv(A)。 对于含有标量的运算,两种除法运算的结果 相同,如3/4和4\3有相同的值,都等于0.75。又如, 设a=[10.5,25],则a/5=5\a=[2.1000 5.0000]。 对于矩阵来说,左除和右除表示两种不同的 除数矩阵和被除数矩阵的关系。对于矩阵运算, 一般A\B≠B/A。可举例说明。
13/43
例2.2 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑 器,并输入待建矩阵: (2) 把输入的内容以纯文本方式存盘(设文 件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix, 即运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
18/43
(2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义[]为空矩阵。给变 量X赋空矩阵的语句为X=[]。 注意,X=[]与clear X不同,clear是将X 从工作空间中删除,而空矩阵则存在于工 作空间中,只是维数为0。
Note:只删整行或整列。
19/43
2.4 MATLAB数据的运算
11/43
2.3 MATLAB矩阵的表示
2.3.1 矩阵的建立 1.直接输入法(枚举法) 最简单的建立矩阵的方法是从键盘直接 输入矩阵的元素。具体方法如下:将矩阵 的元素用方括号括起来,按矩阵行的顺序 输入各元素,同一行的各元素之间用空格 或逗号分隔,不同行的元素之间用分号分 隔。
12/43
2.利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为 它专门建立一个M文件。下面通过一个简 单例子来说明如何利用M文件创建矩阵。
27/43
(3) 当参与比较的一个是标量,而另一个是 矩阵时,则把标量与矩阵的每一个元素按 标量关系运算规则逐个比较,并给出元素 比较结果。最终的关系运算的结果是一个 维数与原矩阵相同的矩阵,它的元素由0或 1组成。
28/43
例2.3 建立5阶方阵A,判断A的元素是否能 被3整除。 A =[24,35,13,22,63;23,39,47,80,80; ... 90,41,80,29,10;45,57,85,62,21;37,19,31,88,76] P=rem(A,3)==0 其中,rem(A,3)是矩阵A的每个元素除 以3的余数矩阵。此时,0被扩展为与A同维 数的零矩阵,P是进行等于(==)比较的结果 矩阵。
30/43
(3) 若参与逻辑运算的是两个同维矩阵,那 么运算将对矩阵相同位置上的元素按标量 规则逐个进行。最终运算结果是一个与原 矩阵同维的矩阵,其元素由1或0组成。 (4) 若参与逻辑运算的一个是标量,一个是 矩阵,那么运算将在标量与矩阵中的每个 元素之间按标量规则逐个进行。最终运算 结果是一个与矩阵同维的矩阵,其元素由1 或0组成。
2.4.1 算术运算 1.基本算术运算 MATLAB的基本算术运算有:+(加)、 -(减)、*(乘)、/(右除)、\(左除)、^(乘方)。 注意,运算是在矩阵意义下进行的,单个 数据的算术运算只是一种特例。
20/43
(1) 矩阵加减运算 假定有两个矩阵A和B,则可以由A+B 和A-B实现矩阵的加减运算。运算规则是: 若A和B矩阵的维数相同,则可以执行矩阵 的加减运算,A和B矩阵的相应元素相加减。 如果A与B的维数不相同,则MATLAB将给 出错误信息,提示用户两个矩阵的维数不 匹配。
10/43
2.2.3 数据的输出格式 MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 在一般情况下,MATLAB内部每一个数据元 素都是用双精度数来表示和存储的。数据输出时 用户可以用format命令设置或改变数据输出格式。 format命令的格式为: format 格式符 其中格式符决定数据的输出格式 例如:short , long, short e ,rat Note:help format (见表2.2)
7/43
clear命令用于删除MATLAB工作空间中的变量。 MATLAB工作空间窗口专门用于内存变量的 管理。在工作空间窗口中可以显示所有内存变量 的属性。当选中某些变量后,再单击Delete按钮, 就能删除这些变量。当选中某些变量后,再单击 Open Selection按钮,将进入变量编辑器。通过变 量编辑器可以直接观察变量中的具体元素,也可 修改变量中的具体元素。
9/43
其中,文件名可以带路径,但不需带扩展 名.mat,命令隐含一定对.mat文件进行操作。 变量名表中的变量个数不限,只要内存或 文件中存在即可,变量名之间以空格分隔。 当变量名表省略时,保存或装入全部变量。 -ascii选项使文件以ASCII格式处理,省略 该选项时文件将以二进制格式处理。save命 令中的-append选项控制将变量追加到MAT 文件中。
ans eps pi i,j inf,Inf NaN 6/43
2.2.2 变量的管理 1.内存变量的显示与删除 who和whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清 单。who命令只显示出驻留变量的名称, whos在给出变量名的同时,还给出它们的 大小、所占字节数及数据类型等信息。
第2章 MATLAB数据及其运算
2.1 2.2 2.3 2.4 2.5 2.6 MATLAB数据的特点 变量及其操作 MATLAB矩阵的表示 MATLAB数据的运算 字符串 结构数据和单元数据
1/43
2.1 MATLAB数据的特点
矩阵是MATLAB最基本、最重要的数 据对象,MATLAB的大部分运算或命令都 是在矩阵运算的意义下执行的,而且这种 运算定义在复数域上。向量和单个数据都 可以作为矩阵的特例来处理。 数值数据:双精度型、单精度数、带符号 整数和无符号整数。(help datatypes) 字符数据。 (help char) 结构体(Structure)和单元(Cell)数据类型。 稀疏矩阵(Sparse)。 逻辑型数据。在MATLAB中,以数值1(非 零)表示“真”,以数值0表示“假”。 2/43
24/43
3. MATLAB常用数学函数
函数使用说明(见表2.3 help elfun) (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模、 字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、 round,要注意它们的区别。 (4) rem与mod函数的区别。rem(x,y)和 mod(x,y)要求x,y必须为相同大小的实矩阵 或为标量。 Note:fix 向0方向取整;floor 向-∞方向取整; ceil向+∞方向取整。
23/43
(4) 矩阵的乘方 一个矩阵的乘方运算可以表示成A^x,要求A 为方阵,x为标量。
2.点运算
在MATLAB中,有一种特殊的运算,因为其 运算符是在有关算术运算符前面加点,所以叫点 运算。点运算符有.*、./、.\和.^。两矩阵进行点 运算是指它们的对应元素进行相关运算,要求两 矩阵的维参数相同。
29/43
2.4.3 逻辑运算 MATLAB提供了3种逻辑运算符:&(与)、|(或) 和~(非)。 逻辑运算的运算法则为: (1) 在逻辑运算中,确认非零元素为真,用1表 示,零元素为假,用0表示。 (2) 设参与逻辑运算的是两个标量a和b,那么, a&b a,b全为非零时,运算结果为1,否则为0。 a|b a,b中只要有一个非零,运算结果为1。 ~a 当a是零时,运算结果为1;当a非零时,运 算结果为0。
17/43
2.矩阵拆分
(1) 利用ቤተ መጻሕፍቲ ባይዱ号表达式获得子矩阵