第二章 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章
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的基础知识
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节-赵亦欣
第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章
第二章 数组、矩阵及其运算
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基本操作
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的基本操作
浮点数包括单精度(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章)答案
实验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,请参考教材相关内容。
第二章 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
第2章 MATLAB的基本语法(1)
handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vandermond e矩阵 Wilkinson’s 特征值测试 矩阵
• 这几个函数的调用格式相似,下面以产生零矩阵 的zeros函数为例进行说明。其调用格式是:
zeros(m) 产生m×m零矩阵
zeros(m,n) 产生m×n零矩阵。 zeros(size(A)) 产生与矩阵A同样大小的零矩阵
• 相关的函数有:length(A)给出行数和列数中的较 大者,即length(A)=max(size(A));ndims(A)给出 A的维数。
1/0
Inf (1/0)
Warning: Divide by zero. ans =
Inf
NaN (0/0,0*Inf,Inf/Inf)
Inf/Inf ans = NaN
ans pi Inf NaN i或j Nargin nargout realmax realmin flops eps
基本赋值矩阵
MATLAB中所有的运算符和函数对复数 有效
f=sqrt(1+2i) f=
1.2720 + 0.7862i
>> f*f ans =
1.0000 + 2.0000i
变量检查
在调试程序时,要检查工作空间中的 变量及其阶数
变量检查用who命令
who
Your variables are:
第2章MATLAB的基本语法课件
handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vanderm阵
此外,常用的函数还有reshape(A,m,n),它在 矩阵总元素保持不变的前提下,将矩阵A重新 排成m×n的二维矩阵。
4. 建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。 例如
A=[1 2 3;4 5 6;7 8 9]; C=[A,eye(size(A)); ones(size(A)),A]
C=
3. 内存变量文件 ❖利用MAT文件(.mat)可以把当前MATLAB
工作空间中的一些有用变量长久地保留下 来。
❖MAT文件的生成和装入由save和load命令 来完成。常用格式为:
save 文件名 [变量名表] [-append][-ascii]
load 文件名 [变量名表] [-ascii]
2.3 MATLAB矩阵
• 数据输出时用户可以用format命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符
• 注意,format命令只影响数据输出格式,而 不影响数据的计算和存储。
2.2.4 预定义变量
在MATLAB工作空间中,还驻留几个由 系统本身定义的变量。它们有特定的含 义,在使用时,应尽量避免对这些变量 重新赋值。
❖ 变量的元素用圆括号“( )”中的数字 (下标)表示。一维矩阵(数组)中的
元素用一个下标表示;二维矩阵用两个 下标表示,以逗号分开
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个元素。
第二章 matlab基础知识
logspace 的基本语法
X=logspace(X1,X2,n) 该函数创建的向量第一个元素值为10X1,而最后一个元素的数值为10X2,
n为向量的元素个数,元素彼此之间的间隔按照对数空间的间隔设置 若在表达式中忽略参数n,则系统默认地将向量设置为50个元素
2.4 Matlab数据
2016/12/29 数据类型 矩阵的概念 一维数组变量的创建 二维数组变量的创建 数组元素的标识与寻访 字符串 多维矩阵 元胞 Application of Matlab Language 结构
8
2.4.1. MATLAB数据类型
数据的记述 Matlab的数只采用习惯的十进制表示,可 以带小数点和负号;其缺省的数据类型为双 精度浮点型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6 其他数据类型 此外,MATLAB还提供了各种有符号、无 符号整型数据,具体参见教材表2.2。
语言。可见学习掌握这一工具的重要性。
2016/12/29
Application of Matlab Language
3
2.2 MATLAB的主要功能
功能强大
数值运算优势 符号运算优势(Maple) 强大的2D、3D数据可视化功能 许多具有算法自适应能力的功能函数
2016/12/29
10
2.4.2. 数组(array)的概念
数组的分类
一维数组,也称为向量(vector) 。
行向量(row vector)、列向量(column vector)。
二维数组(矩阵matrix)。 多维数组。 有效矩阵:每行元素的个数必须相同,每 列元素的个数也必须相同。
02第二章Matlab语言基础-Matlab教程
MATLA于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩 阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列 例m=[1 2 3 4 ;5 6 7 8;9 10 11 12] p=[1 1 1 1 2222 3 3 3 3] 特殊矩阵的建立: a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零. b=zeros(m,n) 产生一个m行、n列的零矩阵 c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵 d=eye(m,n) 产生一个m行、n列的元素的单位矩阵 e=randn(m,n) 产生一个m行、n列正态分布随机矩阵
3、数组的方向 前面例子中的数组都是一行数列,是行方向分布的 称之为行向量 数组也可以是列向 行向量. 前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量 数组也可以是列向 量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示. 它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示 产生列向量有两种方法: 产生列向量有两种方法: 直接产生 例 转置产生 例 c=[1;2;3;4] ; ; ; b=[1 2 3 4]; c=b’
Matlab语言基础 Matlab语言基础
1)启动与退出
双击matlab图标,进入matlab命令窗口(command window) 双击matlab图标,进入matlab命令窗口(command window),即可 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。
第二章_MATLAB_语言基础(绘图)
三、图形标识、坐标控制
MATLAB会自动设定所画曲线的颜色和线型 plot一个附加参量,就可以指定所需要的颜色 和线型 线型的控制‘s’ 绘制坐标系的调整 分格线和坐标框 图形的标注 lengend
三、图形标识、坐标控制 ——线型的控制‘s’
1、颜色控制符
字 符 b c g
颜 色 蓝色 青色 绿色
字 符 m r w y
颜 色 紫红色 红色 白色 黄色
k
黑色
三、图形标识、坐标控制 ——线型的控制‘s’
2、线 型 符 号 线 型 - 实线(默认) -· 点划线 符 号 : -- 线 型 点连线 虚线
三、图形标识、坐标控制 ——线型的控制‘s’
3、数据点标记字符
控制符 · + o * × 标 记 点 十字符 圆圈 星号 叉号 控制符 h p ˇ ˆ > 标 记 六角形 五角形 下三角 上三角 右三角
>> x=0:pi/90:2*pi; >> y1=sin(2*x); >> plot(x,y1) % 默认方式创建1号窗口。 >> figure(2) >> y2=exp(-1.5*x).*sin(2*x); >> plot(x,y2,':') % 创建2号窗口。 >> figure(1) >> grid >> xlabel('x'),ylabel('y1') >> figure(2) >> grid >> xlabel('x'),ylabel('y2')
MATLAB实用教程第二章
1.矩阵的合并
矩阵的合并就是把两个或者两个以上的矩阵 连接成一个新矩阵矩阵构造符 可用于构造矩阵并 可以作为一个矩阵合并操作符 ➢ 表达式C=A B在水平方向合并矩阵A和B; ➢ 表达式C=A;B在竖直方向合并矩阵A和B
具有相同行数的两个矩阵合并为一个新矩阵
12 34 56 3×2
1.访问单个元素
2.线性引用元素
➢ 对于矩阵A线性引用元素的格式为 Ak通常这样的引用用于行向量或列 向量但也可用于二维矩阵
➢ MATLAB按列优先排列的一个长列向量格 式线性引用元素来存储矩阵元素
3.访问多个元素
操作符:可以用来表示矩阵的多个元 素若A是二维矩阵其主要用法如下: ➢ A:: 返回矩阵A的所有元素 ➢ Ai: 返回矩阵A第i行的所有元素
3.用满矩阵和稀疏矩阵存储方式分别构造下述矩 阵:
4.采用向量构造符得到向量159…41 5.按水平和竖直方向分别合并下述两个矩阵:
6. 分别删除第5题两个结果的第2行 7. 分别将第5题两个结果的第2行最后3列的数值
改为11 12 13 8. 分别查看第5题两个结果的各方向长度 9. 分别判断pi是否为字符串和浮点数 10.分别将第5题两个结果均转换为29的矩阵 11.计算第5题矩阵A的转秩 12.分别计算第5题矩阵A和B的A+B、A.* B和
行运算; ➢ 不同优先级的运算符采用先进行优先高的
运算
运算符的优先等级表
由表中可以看到括号的优先级别最高因此可 以用括号来改变默认的优先等级
2.4 字符串处理函数
2.4.1 字符串的构造 2.4.2 字符串的比较 2.4.3 字符串的查找和替换 2.4.4 字符串与数值间的转换
第2章 MATLAB应用基础-1
14
• 相反,char函数可以把ASCII码矩阵转换为字符 重新调整矩阵的行数、 串矩阵。 列数、维数
• 例如 显示一个3行32列的ASCII 字符变量串: ascii = char(reshape(32:127,32,3)') 输出结果为 表示转置 ascii = !"#$%&'()*+,-./0123456789:;<=> ? @ABCDEFGHIJKLMNOPQRSTUV WXYZ[\]^_ 'abcdefghijklmnopqrstuvwxyz{|}~
矩阵是MATLAB最基本、最重要的数据对 象,MATLAB的大部分运算或命令都是在矩 阵运算的意义下执行的,而且这种运算定义 在复数域上。向量和单个数据都可以作为矩 阵的特例来处理。 数值数据:双精度型、单精度数、带符号整 数和无符号整数、复数 字符数据。 结构体(Structure)和单元(Cell)数据类型。 稀疏矩阵(Sparse)。 逻辑型数据。在MATLAB中,以数值1(非零 )表示‚真‛,以数值0表示‚假‛。用 logical()函数将任何非零的数值转换为true, 将数值0转换为false
含义 字符串变小写 将字符串转换成数值 字符串连接,同[] 字符串比较 字符串变大写
19
讲在结构和单元矩阵之前:矩阵的建立
1.直接输入法 最简单的建立矩阵的方法是采用矩阵构造符‚[]”从 键盘直接输入矩阵的元素。 • 构造1×n矩阵(行向量)时,可以将各元素依次 放入矩阵构造符[]内,并且以空格或者逗号分隔; • 构造m×n矩阵时,每行如上处理,并且行与行之 间用分号分隔。 例:a=1;b=2;c=3; x=[5 b c;a*b,a+c,c/b] 2.利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立 一个M文件。
matlab第二章
ceil(1.8)=2
4)round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=2;round(1.3)=1;round(1.52)=2。
MATLAB 中的变量不需要事先定义,在 遇到新的变量名时,MATLAB会自动建立该变 量并分配存储空间。当遇到已存在的变量时, MATLAB会更新其内容,如有必要会重新分配
存储空间。
下一页
变量名由字母、数字和下划线构成, 并且必须以字母开头,最长为31个字符。 MATLAB能区分大小写字母,变量A和a是
例如: if a>1
disp('a>1')
elseif a==1
disp('a=1')
else disp('a<1') end 上一页 返回
3、逻辑函数
MATLAB提供了许多测试用的逻辑函数,
主要有all、any、find、exist、is*等。
返回
all函数
利用all函数可以测定矩阵每列所有
元素是否非零。若该列所有元素非零,则
利用重复函数repmat可以将小矩阵以
重复的形式产生大矩阵。
例如: f=repmat(a,2,3)
3、矩阵缩小 将大矩阵变成小矩阵的方法有两种: 抽取法和删除法。 (1)抽取法是指从大的矩阵中抽取中 的一部分,从而构成新的矩阵。例如: a=[1:4; 5:8; 9:12; 13:16] b=a(2:3, 3:4) c=a([1 4],[1 3]) d=a([2 4],[1 3])
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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运算中涉及的一 组基本运算量。它们各自的特点及相互间的关系可以 描述如下。