MATLAB_-_05_-_二维数组及其应用_修改_

合集下载

MATLAB程序设计及应用实例

MATLAB程序设计及应用实例
程序如下: price=input('请输入商品价格'); switch fix(price/100) case {0,1} rate=0; case {2,3,4} rate=3/100; case num2cell(5:9) rate=5/100; case num2cell(10:24) rate=8/100; case num2cell(25:49) rate=10/100; otherwise rate=14/100; end price=price*(1-rate)
c=input('请输入一个字符','s'); if c>='A' & c<='Z'
disp(setstr(abs(c)+1)); elseif c>='a'& c<='z'
disp(setstr(abs(c)-1)); elseif c>='0'& c<='9'
disp(abs(c)-abs('0')); else
disp(c); end
5.1.4 选择结构- switch语句
switch语句
其语句格式为: switch 表达式 case 值1 语句组1 case 值2 语句组2 …… case 值m 语句组m otherwise 语句组m+1 end
5.1.4 选择结构- switch语句
例 某商场对顾客所购买的商品实行打折销售,已知打折标 准,求所售商品的实际销售价格
例 矩阵乘法运算要求两矩阵的维数相容,否则会出错。 先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘

MATLAB课件-第二讲

MATLAB课件-第二讲

A(r,c)
访问A的由r指定行和c指定列上元素构 成的子数组;r,c可取多行或列
A(r, :)
访问A的r指定行上全部元素构成的子 数组;此处冒号表示全部列
A(:,c)
访问A的c指定列上全部元素的子数 组;此处冒号表示全部行
【例1】单下标的使用 >>a=zeros(2, 5); >>a(:)=-1:8
【例4】>> diag (diag(D)) %外面diag含义为利用一维数组生 成对角阵
ans= 100 010 001
【例5】>>命令栏输入:magic(3) ans =
816 357 492 说明:magic(3)生成一3x3魔方矩阵,即该矩阵横、竖、斜 各列元素总和相等
2.4 数组操作
常见的数组操作函数
命令 permute repmat
reshape
flipud
fliplr
rot90
含义
重排数组的维度次序
按指定的“行数、列数”铺放模块数组,以形成更大 的数组
在总元素数不变的前提下,改变数组的“行数、列 数” 以数组“水平中线”为对称轴,交换上下对称位置上 的数组元素
以数组“垂直中线”为对称轴,交换左右对称位置上 的数组元素
>>a([1 3 5 5 3 1])
ans = 0 5 10 10 5 0
>>a(6)
??? Index exceeds matrix dimensions. 索引超出矩阵维度。 下标值超出了数组的维数,导致错误
>>a(2.1)
??? Subscript indices must either be real positive integers or logicals.

matlab教程(第3讲-数组)

matlab教程(第3讲-数组)
2016/11/22 Application of Matlab Language 3
2.1数值表示、变量及表达式 (续)
运算符和表达式
运算
加 减 乘 除 幂
数学表达式
a+b a-b axb a/b或a\b
MATLAB运算符
+ * /或 \ ^
MATLAB表达式
a+b a-b a*b a/b或a\b a^b
第二种方法:使用冒号“:”操作符
〘例2-2〙创建以1~10顺序排列整数为元素的 行向量b。>>b=1:10 b=1 2 3 4 5 6 7 8 9 10
2016/11/22 Application of Matlab Language 10
所有的向量元素必须在操作符“[ ]”之内; 向量元素间用空格或英文的逗点“,”分开。
计算
z
z3
z1=3+4*i, z2=1+2*i, z3=exp(i*pi/6), z=z1*z2/z3 z_real=real(z), z_image=imag(z), z_angle=angle(z), z_length=abs(z),
2016/11/22
Application of Matlab Language
第四种方法:利用函数logspace 列向量的创建
通过实验认识该函数的功能。
使用方括号“[ ]”操作符,使用分号“;”分 割行。
〘例2-5〙键入并执行x= [1; 2; 3] X=1 2 3
使用冒号操作符
〘例2-6〙键入并执行x= (1:3)‟ % “ ‟ ”表示矩阵的转 置
2016/11/22 Application of Matlab Language 13

MATLAB数据及其运算

MATLAB数据及其运算
注意:一个是矩阵,另一个是标量的运算( .^ )
补:两个多维数组的 点运算。
3. MATLAB常用数学函数
函数使用说明:
(1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的 模、字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、 round,要注意它们的区别。 (4) rem与mod函数的区别。rem(x,y)和 mod(x,y)要求x,y必须为相同大小的实矩阵 或为标量。
p25
A=[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ]
[1 3 5 11 13 15 ]
A( [1,3],[1 3 5] )
可以利用 一般向量 和 end 运算符来表示矩阵下标, 从而获得子矩阵。end表示某一维的末尾元素下标。
A( [1,end-பைடு நூலகம்],[1 :2:end] ) ?
例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 是进行等于(==)比较的结果矩阵。
A(3,2)=200
采用矩阵元素的序号(Index)来引用矩阵元素。
1 矩阵元素的序号就是相应元素在内存中的排列顺序。在
4
MATLAB中,矩阵元素按列存储,先第一列,再第二列,依 次类推。例如
2 A=[1,2,3 ;

matlab教程ppt(完整版)

matlab教程ppt(完整版)

矩阵的数学运算
总结词
详细描述
总结词
详细描述
掌握矩阵的数学运算,如求逆 、求行列式、求特征值等。
在MATLAB中,可以使用inv() 函数来求矩阵的逆,使用det() 函数来求矩阵的行列式,使用 eig()函数来求矩阵的特征值。 例如,A的逆可以表示为 inv(A),A的行列式可以表示 为det(A),A的特征值可以表 示为eig(A)。
• 总结词:了解特征值和特征向量的概念及其在矩阵分析中的作用。 • 详细描述:特征值和特征向量是矩阵分析中的重要概念。特征值是满足Ax=λx的标量λ和向量x,特征向量是与特征值对
应的非零向量。特征值和特征向量在许多实际问题中都有应用,如振动分析、控制系统等。
04
MATLAB图像处理
图像的读取与显示
变量定义
使用赋值语句定义变量,例如 `x = 5`。
矩阵操作
学习如何创建、访问和操作矩 阵,例如使用方括号 `[]`。
函数编写
学习如何创建自定义函数来执 行特定任务。
02
MATLAB编程
变量与数据类型
01
02
03
变量命名规则
MATLAB中的变量名以字 母开头,可以包含字母、 数字和下划线,但不应与 MATLAB保留字冲突。
了解矩阵的数学运算在实际问 题中的应用。
矩阵的数学运算在许多实际问 题中都有应用,如线性方程组 的求解、矩阵的分解、信号处 理等。通过掌握这些运算,可 以更好地理解和解决这些问题 。
矩阵的分解与特征值
• 总结词:了解矩阵的分解方法,如LU分解、QR分解等。
• 详细描述:在MATLAB中,可以使用lu()函数进行LU分解,使用qr()函数进行QR分解。这些分解方法可以将一个复杂的 矩阵分解为几个简单的部分,便于计算和分析。

MATLAB之(一)数组、矩阵和函数及运算

MATLAB之(一)数组、矩阵和函数及运算

说明 4位小数
3.14159265358979 15位小数
3.14
2位小数
355/113
最接近的有理数
format short e,t =pi 3.1416e+000
科学计数
format long e ,t =pi 四、函数
3.141592653589793e+000
MATLAB提供了大量的函数,按照起用法分为标量函数、 向量函数和矩阵函数。
14
b= 1 3 5 7
c=6:-3:-6(从6到-6公差为-3的等差数组)
c=
6 3 0 -3 -6 e=[0:2:8,ones(1,3)](等差数组和行向量的拼接)
e=
0 2468111
2数组的运算
数组除作为1×n矩阵(行向量)遵循矩阵运算外,
MATLAB还为数组提供了一些特殊运算。两个数组间的
的最重要特征是按元素进行运算。
2021/4/14
13
1 数组的输入 ⑴可以像1×n矩阵(即行向量)一样输入,如: a=[2,3,4,5] a=
2345
⑵数组常用“:”来方便地生成一些特殊的数组。如:
a=1:5(从1到5公差为1的等差数组)
a=
12345
b=1:2:7(从1到7公差为2的等差数组)
2021/4/14
(5) randn(生成正态分布随机矩阵); U=ones(3)
W=zeros(2,3) V=eye(2,4)
U=
W=
V=
111
000
2021/4/14
000
1000 0100
111
9
111
X=rand(2,3)
X=

matlab教程ppt(完整版)

matlab教程ppt(完整版)
matlab教程 PPT(完整版)
汇报人:可编辑
2023-12-24
目录
• MATLAB基础 • MATLAB编程 • MATLAB矩阵运算 • MATLAB数值计算 • MATLAB可视化 • MATLAB应用实例
01
CATALOGUE
MATLAB基础
MATLAB简介
MATLAB定义
MATLAB应用领域
菜单栏
包括文件、编辑、查看、主页 、应用程序等菜单项。
命令窗口
用于输入MATLAB命令并显示 结果。
MATLAB主界面
包括命令窗口、当前目录窗口 、工作空间窗口、历史命令窗 口等。
工具栏
包括常用工具栏和自定义工具 栏。
工作空间窗口
显示当前工作区中的变量。
MATLAB基本操作
变量定义
使用变量名和赋值符号(=)定义变 量。
详细描述
直接输入:在 MATLAB中,可以直 接通过输入矩阵的元 素来创建矩阵。例如 ,`A = [1, 2, 3; 4, 5, 6; 7, 8, 9]`。
使用函数创建: MATLAB提供了多种 函数来创建特殊类型 的矩阵,如`eye(n)`创 建n阶单位矩阵, `diag(v)`创建由向量v 的元素构成的对角矩 阵。
使用bar函数绘制柱状图 ,可以自定义柱子的宽
度、颜色和标签。
使用pie函数绘制饼图, 可以自定义饼块的比例
和颜色。
三维绘图
01
02
03
04
三维线图
使用plot3函数绘制三维线图 ,可以展示三维空间中的数据
点。
三维曲面图
使用surf函数绘制三维曲面图 ,可以展示三维空间中的曲面

三维等高线图

实验一_MATLAB_软件环境及基本操作

实验一_MATLAB_软件环境及基本操作

实验⼀_MATLAB_软件环境及基本操作实验⼀ MATLAB 软件环境及基本操作⼀、实验⽬的熟悉 MATLAB 软件的⼯作环境,练习 MATLAB 命令窗⼝的基本操作。

⼆、实验内容1、命令窗⼝(Command Window )运⾏⼊门(1)最简单的计算器使⽤法【例 1】求[12 + 2×(7- 4)]÷32的算术运算结果。

1)⽤键盘在 MATLAB 命令窗⼝中命令提⽰符>>后输⼊以下内容:(12+2*(7-4))/3^22)在上述表达式输⼊完成后,按【Enter 】键,执⾏命令。

3)MA TLAB 命令窗⼝中将显⽰以下结果:ans =【例 2】简单矩阵的输⼊步骤。

123A=4567891)在键盘上输⼊下列内容A = [1,2,3; 4,5,6; 7,8,9]2)按【Enter 】键执⾏命令。

3)在命令执⾏后,MATLAB 命令窗⼝中将显⽰以下结果:A =1 2 34 5 67 8 9【例 3】矩阵的分⾏输⼊A=[1 2 34 5 67 8 9](显⽰结果同例2)【例 4】命令的续⾏输⼊。

…是续⾏符号,表明下⼀⾏是本⾏的接续。

S = 1 – 1/2 + 1/3 –1/4 + 1/5 – 1/6 ... + 1/7 – 1/8S =0.6345 (2)复数和复数矩阵【例1】复数z1 = 3+ 4i,z2 =1+ 2i,z3 = 2eπi/6表达,及计算123z z zz(1)直⾓坐标表⽰法z1= 3 + 4iz1 =3.0000 +4.0000i(2)采⽤运算符构成的直⾓坐标表⽰法和极坐标表⽰法>> z2 = 1 + 2 * i %运算符构成的直⾓坐标表⽰法。

z2 =1.0000 +2.0000i>> z3=2*exp(i*pi/6) %运算符构成的极坐标表⽰法z3 =1.7321 + 1.0000i>> z=z1*z2/z3z =0.3349 + 5.5801i【例-2】复数矩阵的⽣成及运算>> A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i]C=A*BA =1.0000 - 5.0000i 3.0000 - 8.0000i2.0000 - 6.0000i 4.0000 - 9.0000iB =1.0000 + 5.0000i2.0000 + 6.0000i3.0000 + 8.0000i4.0000 + 9.0000iC =1.0e+002 * 0.9900 1.1600 - 0.0900i1.1600 + 0.0900i 1.3700【例3】求上例复数矩阵C 的实部、虚部、模和相⾓。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

与二维数组相关的函数
cmax = max(A) rmax = max(A,[],2)
返回cmax为一个行数组,元素为A中每个列的最大值 返回rmax为一个列数组,元素为A中每个行的最大值
[cmax,index] = max(A)
[rmax,index] = max(A,[],2) max(A,B)
三维网格图: mesh, meshc, meshz
mesh(X,Y,Z,C) 绘制由矩阵 X,Y,Z 所确定的曲面网格图,矩阵 C 用于
确定网格颜色,省略时 C=Z
meshc(X,Y,Z,C) 调用方式与 mesh 相同,在 mesh 基础上增加等高线 meshz(X,Y,Z,C) 调用方式与 mesh 相同,在 mesh 基础上屏蔽边界面
对子数组A(r,c)进行赋值:B的“行、列” A(r,c) = B 必须与A(r,c)的“行、列”相同
二维数组的子数组 的寻访和赋值
使用“单下标”方式
A(:) A(s)
由A的各列按自左到右的次序,首尾相接而生成 的“一维长列”数组 引用A中由一维数组s指定的元素。s若是行(或 列),则A(s)就是长度相同的行(或列) 全元素赋值方式。结果:保持A的“行宽、列长” 不变。条件:A、D两个数组的总元素相等,但 “行宽、列长”不一定相同 对A的部分元素重新赋值。结果:保持A的“行 宽、列长”不变。条件:s单下标数组的长度必 须与“一维数组”B的长度相等,但是s、B不一 定同是“行数组”或“列数组”
返回A中每个列向量的平均值 返回A中每个行向量的平均值
median(A) 返回A中每个列向量的中值 Median(A,2) 返回A中每个行向量的中值
std(A) std(A,2)
返回A中每个列向量的标准差 返回A中每个行向量的标准差
sum(A) sum(A,2)
计算A中每个列向量的元素的和 计算A中每个行向量的元素的和
0 0 0 1 1 1 0 0 0 1 1 1
B= 1 0 0 0 -4 0 0 0
0 2 0 0 0 -3 0 0 0 0 3 0 0 0 -2 0 0 0 0 4 0 0 0 -1
已知一维数组x和y: x [ x1 , x2 , x3 , x4 , x5 ] [1, 0, 1, 2,3], y [ y1 , y2 , y3 , y4 , y5 ] [3, 2,1, 1, 2] 在matlab生成下面的二维数组: x1 x2 x3 x4 x5 1 x 2 x 3 x 4 x 5 x
A(r,c)
2、“单下标”标识: Linear Index 只用一个下标来指明元素在数组中的位置: 把二维数组的所有列,按先左后右的次序, 首尾相接排成“一维长列”,然后,自上往下 对元素位置进行标号。
A(ind)
“单下标”与“全下标”的转化
1、全下标→单下标 ind = sub2ind(siz,r,c) 2、单下标→全下标 [r,c] = ind2sub(siz,ind)
A = [1,2,3; 4,5,6; 7,8,9] (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A = 1 2 3 4 5 6 说明:直接输入矩阵时,每行元素用 7 8 9 空格或逗号分隔,矩阵行用分号分隔, 整个矩阵放在方括号里,标点符号一 定要在英文状态下输入。
sort(A)
对A中列向量进行升序排序
sort(A,’descend’) 对A中列向量进行降序排序 sort(A,2)
对A中行向量进行升序排序
sort(A,2,’descend’) 对A中行向量进行降序排序
当只有一个输出参数时,size函数返 sz=size(A) 回的是一个行向量,该行向量的第一 个元素是数组的行数,第二个元素是 数组的列数。 当有两输出参数时,size函数将数组 [r,c]=size(A) 的行数返回到第一个输出变量,将数 组的列数返回到第二个输出变量。
2 1 2 2 2 3 2 4 2 5
x1 y1 x2 y2 x3 y3 x4 y4 x5 y5
y1 /1 x1 y5 y2 / 2 x2 y4 y3 / 3 x3 y3 y4 / 4 x4 y2 y5 / 5 x5 y1
二维数组操作函数
把“大小”相同的若干数组,沿“指 cat(dim, A, B) 定维”方向,串接成高维数组 。行 (dim=1) 列(dim=2)
由一维数组创建二维数组
A = [1,3,5] B = [2,4,6] C = [3,5,7]
D = [A;B] E = [A;B;C] F = [A’,B’] G = [A’,B’,C’]
由函数创建二维数组
zeros(m,n)
ones(m,n) eye(m,n)
生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n)
二维数组的转置运算
• A.’:转置 • A’:共轭转置
两个维数相同的 二维数组之间的数组运算
• • • • • • A + B:加,对应位置的数组元素相加 A - B:减,对应位置的数组元素相减 A.*B:点乘,对应位置的数组元素相乘 A./B:右点除,对应位置的数组元素相除 A.\B:左点除 A.^B:点幂,对应位置的数组元素做幂运算
二维数组的与标量 的运算
• • • • • • • A + c :A的每个元素加c A - c: A的每个元素减c A.*c:点乘, A的每个元素乘c A./c:右点除, A的每个元素除c A.\c:左点除,c除A的每个元素 A.^c:点幂, A的每个元素做幂运算 c.^A:点幂,c做幂运算
函数作用在二维数组上的 运算规则
利用二维数组在同一坐标轴中同时绘制下列函 数的图形:
y k cos x , x 0,2 , k 1,2,3
plot用二维数组绘图的细节
你想要是下面的哪一种图形?怎样绘制出这两种图形?
3
3
2
2
1
1
0
0
-1
-1
-2
-2
-3
0
1
2
3
4
5
6
7
-3
0
1
2
3
4
5
6
7
补充:plot绘图的细节
二维数组的单个元素 的引用和赋值
• X=magic(6) • 单个元素寻访 X(2,3) X(5,5) X(16) • 单个元素的赋值 X (2,3) = 0 X (5,5) = 7 X (16) = 8
二维数组的子数组 的寻访和赋值
使用“双下标”方式
A(r,:)
A(:,c) A(r,c)
由A的“r行”和“全部列”上的元素组 成 由A的“全部行”和“c列”上的元素组 成 由A的“r行”和“c列”上的元素组成
x11 x 21 X ... xm1 x12 x22 ... xm 2 ... x1n ... x2 n xij ... ... ... xmn
mn

mn
f X f xij
如何引用二维数组的元素?
1、“全下标”标识: 即指出是“第几行,第几列”的元素
r=size(A,1)
返回数组 A 的行数
c=size(A,2) 返回数组 A 的列数 length(A)
返回数组的长度(行数或列数的较大值)
numel(A)
返回数组元素的个数
练习
函数f x 的定义如下: x2 x 6 2 f ( x) x 5 x 6 x2 x 1 , , , x 0且x 4 0 x 10 , x 2且x 3 其它
diag(A,k) flipud(A) fliplr(A) kron(A,B)
A 是矩阵,则 diag(A,k) 返回A的第k 条对角线向量,默认k=0 以数组“水平中线”为对称轴,交换 上下对称位置上的数组元素 以数组“垂直中线”为对称轴,交换 左右对称位置上的数组元素
按Kronecker乘法规则(直积)产生 “积”数组
编写一个Matlab函数实现该函数,且要求函数能够 处理输入参数为一维、二维数组的情况,即要求: f xij f xij mn mn


二维数组在2d绘图中的应用

plot(x,y)
若x, y 都是二维数组,则将 x 的列和 y 中 相应的列相组合,绘制多条平面曲线。此时 x, y 必须具有相同的大小。
A(:) = D(:)
A(s) = B
二维数组的子数组 的寻访和赋值
使用“逻辑数组”方式
A(L)
“逻辑数组”寻访,生成“一维”列数组: 由与A同样大小的“逻辑数组”L中的“1元 素”选出A的对应元素;按“单下标”次序 排成长列组成
4 2 0 2 4 例:找出数组A 3 1 1 3 5 中所有绝对值大于3的元素。
A中每个列向量的累加和,维数与A相同 A中每个行向量的累加和,维数与A相同
cumsum(A) cumsum(A,2)
prod(A) prod(A,2) cumprod(A) cumprod(A,2)
计算A中每个列向量的元素的积 计算A中每个行向量的元素的积
A中每个列向量的累乘积,维数与A相同 A中每个行向量的累乘积,维数与A相同
生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 生成魔方数组,各行、列之和 = (1+2+……+n2 )/n
magic(n) diag(v,k)
rand(m,n) randn(m,n)
二维数组操作函数
repmat(A,m,n) rot90(A,k)
相关文档
最新文档