第二章 MATLAB基础

合集下载

第二章 MATLAB的基础语法-矩阵与画图

第二章 MATLAB的基础语法-矩阵与画图

2.1.4 矩阵的运算
1. MATLAB中矩阵运算符: + 加法;- 减法;’ 转置;* 乘法;^ 乘幂;\ 左除;/ 右除。 2. 注意:它们要符合矩阵运算的规律,如果矩阵的行 列 数不符合运算符的要求,将产生错误信息。 3. 举例:左除和右除的用法: 设A是可逆矩阵, ①、AX=B 的解是A 左除B,即 X=A\B
>>A(1:2:3,4:-1:2)↙ >>D(:,1)=[]↙%删除D的第1列,[ ]为空集符号 D= 0 1
2. 矩阵的拼接
定义:将几个矩阵接在一起称为拼接。 注意:左右拼接时行数相同,上下拼接时列数相同。
例题
>>E=[D,zeros(2,1)]↙ E = 2 3 0 5 6 0
2 3 D= 5 6
d =
e = -1.2000
3.1000
0
3.1000
4.0000
6.0000
2.4.3 矩阵函数
MATLAB有大量的 处 理矩阵的函数,从其作用 来 看可分为 两 类: 构造矩阵的函数;进行矩阵计算的函数。对于前者,我们已经 介绍了
构造矩阵的函数
eye(单位阵)
zeros(0阵)
ones(1阵)
2.4.2 向量函数
有些函数只有当它们作用于(行或列)向量时才有意义,称为 向量函数,这些函数也可以作用于矩阵,此时它产生一个行向 量,行向量的每个元是函数作用于矩阵相应列向量的结果。常 用的有: max,min,sum( 和 ) , length( 长 度 ) ,mean( 平 均 值 ) median(中值),prod(乘积),sort(从小到大排列) 例 >>a=[4 3.1 -1.2 0 6]; b=min(a),c=sum(a),d=median(a),e=sort(a) ↙ b = c = 11.9000 -1.2000

matlab第2章

matlab第2章
21
2. MATLAB变量的显示
任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值
给指定的变量。没有指定变量பைடு நூலகம்,赋值给默认变量名ans,数据
的显示格式由format命令控制。
Format只影响结果的显示,不影响计算与存储。
MATLAB以双字长浮点数(双精度)执行所有的运算。
22
2.4.1.2 字符串
a在前面未赋值时,非法命令。
19
1. 变量命名规则 (1)变量名区分字母的大小写,A与a表示不同的变量。 (2)变量名必须以英文字母开头,之后可以使用字母、数字、下画线, 但不能使用空格和标点符号。 (3)变量名长度不能超过31个字符,超过部分将被忽略
(4)某些常量也可以作为变量使用。
如 i 在MATLAB中表示虚数单位,但也可以作为变量使用。
5
3.Debug主菜单项 (1)Open M-Files when Debugging:调试时打开M文件 (2)Step:单步调试程序
(3)Step In:单步调试进入子程序
(4)Step Out:单步调试从子程序跳出 (5)Continue:程序执行到下一断点 (6)Clear Breakpoints in All Files:清除所有打开文件中的断点 (7)Stop if Errors/Warnings:在程序出错或报警处停止往下执行
8
5.Window主菜单项 (1)Close All documents:关闭所有文档 (2)0 Command Window:选定命令窗口为当前活动窗口 (3)1 Command History:选定历史命令窗口为当前活动窗口 (4)2 Current Directory:选定当前路径窗口为当前活动窗口

第2章 MATLAB的基础知识

第2章 MATLAB的基础知识

a=[1 2 1;2 2 1;2 1 2]; b=[1;2;3]; a/b %矩阵右除
运行程序,得到结果:
??? Error using ==> mrdivide Matrix dimensions must agree.
重新输入语句
a\b
%矩阵左除 ans = 1.0000 -0.3333 0.6667
运行程序,得到结果:
c= 0 0 1 1 1 0
说明 对于复数运算,“= =”与“~ =”运算,既比较实部, 又比较虚部。而其他运算仅比较实部。关系运算同样也可用于 常量与矩阵的比较,在这种情况下,该常量与矩阵的每一个元 素进行比较,其结果是一个与矩阵同维数的0、1矩阵。
逻辑操作符
逻辑操作符 说 明 相对应函数
-0.1667 0 0
(3)矩阵特征值运算
矩阵条件数cond( ) 矩阵的秩rank() 矩阵特征值eig ( )
矩阵范数norm( ) 矩阵的迹trace ( ) 矩阵奇异值svd ( )
例2-7 分别计算矩阵a的有关特征参数。输入以下 MATLAB语句
a=[1 2 3;4 5 6;7 8 0] [cond(a),norm(a),rank(a)]
2.MATLAB工作环境
图形窗口“Figure”
M文件窗口
3.MATLAB的M文件
所谓M文件,就是用户把要实现的命令写在一个 以.m为扩展名的文件中
M文件有两种格式(统称为M文件) 函数式M文件 程序式M文件 程序式M文件用于把很多需要在命令窗口输入的命 令放在一起,就是命令的简单叠加 函数式M文件用于把重复的程序段封装成函数供用 户调用。
&
|
逻辑与
逻辑或
and(a,b)

第二章_MATLAB语言基础_第1节-赵亦欣

第二章_MATLAB语言基础_第1节-赵亦欣
ans的值将在下一条表达式语句执行后被刷新。
第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i

MATLAB基础教程第2章

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基本操作

第2章   MATLAB基本操作

6. 逻辑操作符 功能: 功能:逻辑操作运算。 格式: 格式:A&B A|B ~A 注意逻辑操作有相应的M文件 文件: 注意逻辑操作有相应的 文件:A&B等效 等效 ),A|B等效于 等效于or(A,B), 于and(A,B), ( , ), 等效于 , , ~A等效为 等效为not(A)。 等效为 。
2.关系操作符 关系操作符 关系运算符包括: 关系运算符包括:< 、< = 、〉、> = 、= = 、 ~= 3.测试用的逻辑函数 测试用的逻辑函数 1)all函数测定矩阵中是否全为非零元素 2)any函数测试出矩阵中是否有非零值 3) find函数可找出矩阵中的非零元素及其下 标 4) exist函数在装入数据之前对数据文件作 检测
利用取整和求余函数,可得到整数或精确到小数点后的第 几位。例如: x1=10-round(20*rand(2,5)) %产生[-10 10]之间的随机数(取整) x1 = -4 4 -1 -4 7 -7 -2 0
2 −7
x2=10-round(2000*rand(2,5))/100 %产生[−10 10]之间的随机 数(精确到0.01) x2 = -8.0000 -2.9000 -3.2000 -6.4300 -6.3600 3.1600 4.2100 -0.6800 3.1800 -4.5400
5.函数 函数 内部函数、工具箱函数、自定义函数。 1)函数的嵌套 x=sqrt(log(z)) 函数的嵌套 2)多输入函数 theta=atan2(y,x) 多输入函数 3)多输出函数 [v,d] = eig(a) 多输出函数 [y,I] = max(x) 6.表达式 表达式 a=(1+sqrt(10))/2 b=abs(3+5i) c=sin(exp(-2.3))

第2章_MATLAB的基本操作

第2章_MATLAB的基本操作
浮点数
浮点数包括单精度(4个字节)和双精度(8个字 节),默认为双精度。
single :将其它类型的数据转换成单精度浮点数。 double :将其它类型的数据转换成双精度浮点数。
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
MATLAB数据类型
例:
MATLAB数据类型
细胞变量的定义
可以通过以下两种方式定义一个细胞变量:
用赋值语句直接定义; 由 cell 函数预先分配存储空间,然后对细
胞的每个元素逐个赋值。
MATLAB数据类型
MATLAB数据类型
细胞变量可以嵌套定义
MATLAB数据类型
细胞变量的元素的引用
MATLAB数据类型
str2num:将字符数组转换为
数值数组
abs,double,char按照 ASCII码 转换; num2str,int2str,mat2str,str2num 直接转换。
MATLAB数据类型
字符串的连接
水平连接:strcat 或 中括号中用逗号连接
在中括号中直接水平连 接,结果中包括原字符 串结尾处的空格。 用 strcat 连接,结果 中忽略原字符串结尾处 的空格。
把数字直接转换为字符 串,每个数字为一个独 立的字符串。
把数字取整后转换为字 符串,注意和 num2str 的区别。
把矩阵转换为一个字符 串,方括号、分号和空 格都是其元素。
MATLAB数据类型

MATLAB运算基础(第2章)答案

MATLAB运算基础(第2章)答案

实验01讲评、参考答案讲评未交实验报告的同学名单数学:6人(11、12级)信科:12-04, 12-22, 13-47批改情况:问题1:不仔细,式子中出错。

问题2:提交的过程不完整。

问题3:使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。

问题4:截屏窗口没有调整大小。

附参考答案:《MATLAB软件》课内实验王平实验01 MATLAB运算基础(第2章MATLAB数据及其运算)一、实验目的1. 熟悉启动和退出MATLAB 的方法。

2. 熟悉MATLAB 命令窗口的组成。

3. 掌握建立矩阵的方法。

4. 掌握MATLAB 各种表达式的书写规则以及常用函数的使用。

二、实验内容1. 数学表达式计算先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

1.1 计算三角函数122sin 851z e=+(注意:度要转换成弧度,e 2如何给出) 示例:点击Command Window 窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。

命令窗口中的执行过程:1.2 计算自然对数221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦(提示:clc 命令擦除命令窗口,clear 则清除工作空间中的所有变量,使用时注意区别,慎用clear 命令。

应用点乘方) 命令窗口中的执行过程:1.3 求数学表达式的一组值0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

命令窗口中的执行过程:1.4 求分段函数的一组值2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5提示:用逻辑表达式求分段函数值。

命令窗口中的执行过程:1.5 对工作空间的操作接着显示MATLAB当前工作空间的使用情况并保存全部变量提示:用到命令who, whos, save, clear, load,请参考教材相关内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
27
3 )向量是一个数学量,一般高级语言中也未引入, 它可视为矩阵的特例。从MATLAB的工作区可以查 看到:一个 n 维的行向量是一个 1 × n 阶的矩阵,而 一个n维的列向量则当成n×1阶的矩阵。 如A=[1 2 3 4]就是一个4维的行向量。也可看成是 一个一维数组,还要看成是一个1×4阶的矩阵。
3
数据类型转换函 数 uint8 uint16 uint32 uint64 int8 int16 int32 int64
说 明 无符号8位整数 无符号16位整数 无符号32位整数 无符号64位整数 有符号8位整数 有符号16位整数 有符号32位整数 有符号64位整数
字节数 1 2 4 8 1 2 4 8
22
【例 2.8】变量赋值 >> a=3.14 a= 3.1400 >> class(a) %函数class用来是判断变量数据类 型的 ans = double %变量a是双精度的浮点型数据
23
>> a='hello!' hello! >> class(a) ans = char
%变量a重新赋值
13
>> whos Name Size a 1x1 x 1x1 y 1x1 z 1x1
Bytes Class Attributes 16 double complex 4 int32 4 int32 8 int32 complex
14
2.2MATLAB的常量及变量
2.2.1常量 常量是程序语句中取不变值的那些量。如表达式 y=0.314*x,其中就包含一个0.314这样的数值常数,它 便是一个数值常量。而在另一表达式s='Hello'中,单引 号内的英文字符串“Hello”则是一个字符串常量。
19
【例2.7】创建无穷量和非数值量。 >> clear >> x=1/0 %产生正无穷大 x= Inf >> y=log(0) %产生负无穷大 y= -Inf >> z=0/0 %产生非数值量 z= NaN
20
2.2.2变量
变量是在程序运行中值可以改变的量,变量由变量 名来表示。在 MATLAB 中,变量名的命名有自己的 规则,可以归纳成如下几条。 ●变量名必须以字母开头,且只能由字母、数字或 者下划线 3 类符号组成,不能含有空格和标点符号 (如( ),。%)等。 ●变量名区分字母的大小写。例如,“ name ”和 “Name”是不同的变量。 ●变量名不能超过 63 个字符,第 63 个字符后的字符 被忽略。对于MATLAB 6.5以前的版本,变量名不能 超过31个字符。 ●关键字不能作为变量名。
像 A= [1 2 3 4]就是一个含有 4个元素一维数组,而 B=[1 2;3 4]一个二行二列的二维数组 如果元素在排成二维数组的基础上,再将多个行、 列数分别相同的二维数组叠成一个立体表格,便形 成三维数组。依此类推,便有了多维数组的概念。
26
2)矩阵是一个数学概念,一般高级语言并未将其作 为基本的运算量,但MATLAB是个例外。 一般高级语言是不认可将两个矩阵视为两个简单变 量而直接进行加、减、乘、除的,要完成矩阵的四 则运算必须借助于循环结构。
fix(a)
floor(a)
向不大于 a 的最接近的整数 取整
ceil(a)
向不小于 a 的最接近的整数 取整
பைடு நூலகம்
ceil(4.3)结果为5 ceil(4.5)结果为5
7
数据类型参与的数学运算与 MATLAB 中默认的双精度 浮点运算不同。当两种相同的整数类型进行运算时, 结果仍然是这种整数类型;当一个整型数值与一个双 精度浮点类型数值进行数学运算时,计算结果是这种 整数类型,取整采用默认的四舍五入方式。 【注意】两种不同的整数类型之间不能进行数学运算, 除非提前进行强制转换。 【例2.2】整数类型数值参与的运算。 >> x=uint16(103.45)*uint16(20.7) x= 2163 >> x=uint16(103.45)*20.7 x= 2132 8 >> x=uint16(103.45)*uint32(20.7) %错误的运算式
第2章 MATLAB基础
2.1 MATLAB数据类型 MATLAB数值型数据划分成整型和浮点型的用意和C 语言有所不同。MATLAB的整型数据主要为图像处理 等特殊的应用问题提供数据类型,以便节省空间或提 高运行速度。对一般数值运算,绝大多数情况是采用 双精度浮点型的数据。 具体的数据类型如下:
1
2
6
MATLAB 中还有多种取整函数,可以用不同的策略把 浮点小数转换成整数,如下表所示
函数 round(a) 说明 向最接近的整数取整,小数 部分是 0.5 时向绝对值大的方 向取整 向0方向取整 举例 round(4.3)结果为4 round(4.5)结果为5 fix(4.3)结果为4 fix(4.5)结果为4 floor(4.3)结果为4 floor(4.5)结果为4
2)浮点型 MATLAB 中提供了单精度浮点数类型和双精度浮 点数类型。它们在存储位宽、各数据位的用处、 表示的数值范围、转换函数等方面都不同,如下 表所示。
类型 所占位宽(字 节) 64(8) 各数据位用处 取值范围 转换函数
双精 度
0~51位表示小数部分, 2.2251e-308 52 ~ 62 位表示指数部分, ~1.7977e+308 63位表示符号( 0为正, 1为负)
2.1.1数值型数据 1) 整形 不同的整数类型所占用的位数不同,因此所能表示 的数值范围不同,在实际应用中,应该根据需要的数 据范围选择合适的整数类型。有符号整数类型使用一 位来表示正负,因此表示的数据范围和相应的无符号 整数类型不同。 由于MATLAB中数值的默认存储类型是双精度 浮点类型,因此,必须通过下表中列出的转换函数 将双精度浮点数值转换成指定的整数类型。
17
常量(特殊函数)
ans
pi
含义
用于存储计算结果的默认变量名
圆周率 的双精度表示
i 或j Inf或 inf
用于复数单位,即 i2=j2=-1 无穷大,前面可加+或- 非数值量,产生于0/0、无穷大 /无穷大
NaN
eps
date Realmin或realmin Realmax或 realmax version
double
单精 度
32(4)
0~22位表示小数部分, 1.1755e-38 23 ~ 30 位表示指数部分, 3.4028e+38 31位表示符号( 0为正, 1为负)

single
9
【例2.3】浮点数转换函数的应用。 >> clear %将内存中的变量清掉 >> x=uint32(210);y=single(32.356);z=15.254; >> xy=x*y %错误的运算式 错误使用 .* 整数只能与相同类的整数或标量双精度值组合使用。 %系统提示的错误原因 >> xz=x*z xz = 3203
28
4 )标量的提法也是一个数学概念,但在 MATLAB 中, 一方面可将其视为一般高级语言的简单变量来处理, 另一方面又可把它当成1×1阶的矩阵,这一看法与矩 阵作为MATLAB的基本运算量是一致的。 如A=1就是一个标量,也就是一般的简单变量,同时 也可将它看成一个1×1阶的矩阵。
29
5 )在 MATLAB 中,二维数组和矩阵其实是数据结构 形式相同的两种运算量。二维数组和矩阵的表示、建 立、存储根本没有区别,区别只在于它们的运算符和 运算法则不同。 例如,向命令窗口中输入A=[1 2; 3 4]这个量,实际上 它有两种可能的角色:矩阵 A 或二维数组 A 。这就是 说,单从形式上是不能完全区分矩阵和数组的,必须 再看它使用什么运算符与其他量之间进行运算。
函数
real(z) abs(z) conj(z)
说明
返回复数z的实部 返回复数z的幅度 返回复数z的共轭复数
函数
imag(z) angle(z) complex(a,b)
说明
返回复数z的虚部 返回复数z的幅角 以a为实部,b为虚部创建复数
12
【例2.4】复数的创建和运算。 >> a=1+2i a= 1.0000 + 2.0000i >> x=int32(8);y=int32(10); >> z=complex(x,y) z= 8+ 10i
当MATLAB将矩阵引入作为基本运算量后,上述局 面改变了。MATLAB不仅实现了矩阵的简单加、减、 乘、除运算,而且许多与矩阵相关的其他运算因此 大大简化。 如A=[1 2;3 4] B=[5 6;7 8]这是两个同阶的2×2 矩阵,因此在MATLAB中,可将它们看成两个常量 进行诸如 A+B , A - B , A*B , A/B 这样一些算术运 算
21
作为一种编程语言, MATLAB 中为编程保留了一些 关键字: break 、 case 、 catch 、 classdef 、 continue 、 else 、 elseif 、 end 、 for 、 function 、 global 、 if 、 otherwise 、 parfor 、 persistent 、 return 、 spmd 、 switch 、 try、while,这些关键字在程序编辑窗口中会以蓝色 显示(可以自己改变),它们是不能作为变量名的,否 则会出现错误。
%变量a是字符串型的数据
>> pi*2 %表达式的值没给任何自定义变量时, 就送给系统特殊变量ans ans = 6.2832
24
2.3 标量、向量、矩阵与数组
标量、向量、矩阵和数组是MATLAB运算中涉及的一 组基本运算量。它们各自的特点及相互间的关系可以 描述如下。
相关文档
最新文档