第4讲 MATLAB矩阵分析及绘图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
yi a bxi
此外,常用的函数还有reshape(A,m,n),它在矩阵总元 素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。
2、用于专门学科的特殊矩阵
魔方矩阵
魔方矩阵有一个有趣的性质,其每行、每列及两条 对角线上的元素和都相等。对于n阶魔方阵,其元素由
1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵
>> triu(A,-1) ans = 1 2 3 4 5 6 0 8 9
2 矩阵的转置与旋转
(1)矩阵的转置 转置运算符是单撇号(‘)。 (2)矩阵的旋转 利用函数rot90(A,k)将矩阵A旋转90º 的k倍,当k为1时可省略。
(3)矩阵的左右翻转
对矩阵实施左右翻转是将原矩阵的第一列和最后一列 调换,第二列和倒数第二列调换,…,依次类推。 MATLAB对矩阵A实施左右翻转的函数是fliplr(A)。 (4)矩阵的上下翻转
>> A=[1 2 3;4 5 6;7 8 9];
>> triu(A) ans = 1 2 0 5 0 0 >> tril(A,-1) ans = 0 0 0 4 0 0 7 8 0 >> tril(A,1) ans = 1 2 0 4 5 6 7 8 9
3 6 9
>> triu(A,1) ans = 0 2 3 0 0 6 0 0 0
2.含多个输入参数的plot函数 调用格式为: plot(x1,y1,x2,y2,…,xn,yn)
(1)
当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn 分别组成一组向量对,每一组向量对的长度可以不同。 每一向量对可以绘制出一条曲线,这样可以在同一坐标
内绘制出多条曲线。
>> x1=linspace(0,2*pi,100); >> y1=sin(x1); >> x2=linspace(0,3*pi,70); >> y2=1+sin(x2); >> plot(x1,y1,x2,y2)
的函数magic(n),其功能是生成一个n阶魔方阵。 观察magic(5),其元
素为1~25,每行每列
及对角线的和均为65 例: 将101~125等25个数填 入一个5行5列的表格中,使 其每行每列及对角线的和均 为565。
4.2 矩阵的结构变换
1、对角阵与三角阵
(1)对角阵 只有对角线上有非0元素的矩阵称为对角矩阵,对角线上的元素相等的 对角矩阵称为数量矩阵,对角线上的元素都为1的对角矩阵称为单位矩阵。 提取矩阵的对角线元素
第5章 MATLAB绘图
5.1 二维数据曲线图
5.1.1 绘制单根二维曲线 plot函数的基本调用格式为: plot(x,y)
其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
例5-1 在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x);
标用于x2,y2数据对。
例5-4 用不同标度在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。
程序如下:
x=0:pi/100:2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); plotyy(x,y1,x,y2);
第4章 MATLAB矩阵分析与处理
4.1 特殊矩阵 4.2 矩阵的结构变换 4.3 矩阵的逆
4.4 矩阵求值
4.1 特殊矩阵
1、通用特殊矩阵
zeros(m,n) m行n列的零矩阵; ones(m,n) m行n列的元素全为1的阵; eye(n) n阶单位矩阵; rand(m,n) m行n列[0,1]上均匀分布随机数矩阵 randn(m,n) 均值为0,方差为1的标准正态分布随机矩阵
5.2 设置曲线样式
MATLAB提供了一些绘图选项,用于确定所绘曲线
的线型、颜色和数据点标记符号,它们可以组合使用。
线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。
线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆 颜色:b蓝 ;g绿;r红; c青; m紫; y黄; k黑; w白;
例 先建立5×5矩阵A,然后将A的第一行元素乘以1,第
二行乘以2,…,第五行乘以5。
(2)三角阵
三角阵又进一步分为上三角阵和下三角阵,所谓上三
角阵,即矩阵的对角线以下的元素全为0的一种矩阵,而 下三角阵则是对角线以上的元素全为0的一种矩阵。 上三角矩阵 求矩阵A的上三角阵的MATLAB函数是triu(A)。 triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵A的第 k条对角线以上的元素。 下三角矩阵 在MATLAB中,提取矩阵A的下三角矩阵的函数是tril(A)和 tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k)完全 相同。
>> y=[1 2 3;4 5 6;7 8 9];
>> plot(x,y);
(2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵
坐标分别绘制曲线,曲线条数等于矩阵的列数。 >> x=[1 2 3;4 5 6;7 8 9]; >> y=[7 8 9;1 2 3;4 5 6]; >> plot(x,y); (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵 时,则按列绘制每列元素值相对其下标的曲线,曲线条数等 于输入参数矩阵的列数。 >> x=[1 2 3;4 5 6;7 8 9]; >> plot(x,y);
纵坐标范围默认在最大最 小值之间。
4.图形保持
hold on/off命令控制是保持原有图形还是刷新原有图
形,不带参数的hold命令在两种状态之间进行切换。
例4-5 采用图形保持,在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); plot(x,y1) hold on y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y2); hold off
例:建立3*3,3*2的和矩阵A同样大小的零矩阵 Zero(3,3) Zero(3,2) Zero(size(A))
例(1)在区间[20,50]内均匀分布的5阶随机矩阵
(2)均值为0.6,方差为0.1的5阶正态分布随机矩阵
任意[a,b]区间上均匀分布的随机数: yi a (b a) xi 均值为a,方差为b^2的随机数:
(2) 当输入参数有矩阵形式时,配对的x,y按对应列元
素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的 列数。
>> x1=linspace(0,2*pi,100); >> y1=sin(x1); >> x2=linspace(0,3*pi,100); >> y2=1+sin(x2); >> x3=[x1;x2]'; >> y3=[y1+2;y2+2]';
当选项省略时,MATLAB规定,线型一律用实线,颜色将
根据曲线的先后顺序依次。
要设置曲线样式可以在plot函数中加绘图选项,其调用格 式为: plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
>> x=0:pi/15:2*pi;
>> y1=sin(x); y2=cos(x); >> plot(x,y1,'b:+',x,y2,'g-.*')
2.矩阵的秩和迹
(1)矩阵的秩 矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中, 求矩阵秩的函数是rank(A)。 (2)矩阵的迹 矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征 值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。
3.矩阵的特征值与特征向量
在MATLAB中,பைடு நூலகம்算矩阵A的特征值和特征向量的函数 是eig(A),常用的调用格式有3种:
设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个
具有min(m,n)个元素的列向量。 diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。
构造对角矩阵
设V为具有m个元素的向量,diag(V)将产生一个m×m对角矩阵,其主对 角线元素即为向量V的元素。 diag(V)函数也有另一种形式diag(V,k),其功能是产生一个n×n(n=m+k) 对角阵,其第k条对角线的元素即为向量V的元素。
(1) E=eig(A):求矩阵A的全部特征值,构成向量E。
(2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D, 并求A的特征向量构成V的列向量。
例 用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0 p=[3,-7,0,5,2,-18]; A=compan(p); %求伴随矩阵A x1=eig(A) %求A的特征值 x2=roots(p) %直接求多项式p的零点
plot(x)
在这种情况下,当x是实向量时,以该向量元素的下标为 横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘 制折线图。
5.1.2 绘制多根二维曲线
1.plot函数的输入参数是矩阵形式
(1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不 同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这 些曲线共同的横坐标。 >> x=[1 2 3];
例5-6 在同一坐标内,分别用不同线型和颜色绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。 程序如下:
x=linspace(0,2*pi,1000); y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); k=find(abs(y1-y2)<1e-2); %查找y1与y2相等点(近似相等)的下标
MATLAB对矩阵A实施上下翻转的函数是flipud(A)。
4.3 矩阵的逆
1.矩阵的逆 对于一个方阵A,如果存在一个与其同阶的方阵B,使得: A· B=B· (I为单位矩阵)则称B为A的逆矩阵,当然,A也是B的 A=I 逆矩阵。 求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在 MATLAB中,求一个矩阵的逆非常容易。求方阵A的逆矩阵可调 用函数inv(A)。 例 求方阵A的逆矩阵,并验证其互逆。
x1=x(k);
%取y1与y2相等点的x坐标
y3=0.2*exp(-0.5*x1).*cos(4*pi*x1); %求y1与y2值相等点的y坐标 plot(x,y1,x,y2,'k:',x1,y3,'bp');
5.3 图形标注与坐标控制
1.图形标注
有关图形标注函数的调用格式为:
title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明)
2 1.5
1
0.5
0
-0.5
-1
plot(x,y)
-1.5
-2
0
1
2
3
4
5
6
7
例5-2 绘制曲线。 程序如下: t=0:0.1:2*pi; x=t.*sin(3*t); y=t.*sin(t).*sin(t); plot(x,y);
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0 -6
-4
-2
0
2
4
6
plot函数最简单的调用格式是只包含一个输入参数:
>> plot(x1,y1,x2,y2,x3,y3)
3.具有两个纵坐标标度的图形
在MATLAB中,如果需要绘制出具有不同纵坐标标 度的两个图形,可以使用plotyy绘图函数。调用格式为: plotyy(x1,y1,x2,y2)
其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标 度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐
例:用求逆矩阵的方法解线性方程组
x 2 y 3z 5 x 4 y 9 z 2 x 8 y 27 z 6
4.4 矩阵求值
1.方阵的行列式值 把一个方阵看作一个行列式,并对其按行列式的规则求值, 这个值就称为矩阵所对应的行列式的值。 在MATLAB中,求方阵A所对应的行列式的值的函数是 det(A)。
此外,常用的函数还有reshape(A,m,n),它在矩阵总元 素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。
2、用于专门学科的特殊矩阵
魔方矩阵
魔方矩阵有一个有趣的性质,其每行、每列及两条 对角线上的元素和都相等。对于n阶魔方阵,其元素由
1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵
>> triu(A,-1) ans = 1 2 3 4 5 6 0 8 9
2 矩阵的转置与旋转
(1)矩阵的转置 转置运算符是单撇号(‘)。 (2)矩阵的旋转 利用函数rot90(A,k)将矩阵A旋转90º 的k倍,当k为1时可省略。
(3)矩阵的左右翻转
对矩阵实施左右翻转是将原矩阵的第一列和最后一列 调换,第二列和倒数第二列调换,…,依次类推。 MATLAB对矩阵A实施左右翻转的函数是fliplr(A)。 (4)矩阵的上下翻转
>> A=[1 2 3;4 5 6;7 8 9];
>> triu(A) ans = 1 2 0 5 0 0 >> tril(A,-1) ans = 0 0 0 4 0 0 7 8 0 >> tril(A,1) ans = 1 2 0 4 5 6 7 8 9
3 6 9
>> triu(A,1) ans = 0 2 3 0 0 6 0 0 0
2.含多个输入参数的plot函数 调用格式为: plot(x1,y1,x2,y2,…,xn,yn)
(1)
当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn 分别组成一组向量对,每一组向量对的长度可以不同。 每一向量对可以绘制出一条曲线,这样可以在同一坐标
内绘制出多条曲线。
>> x1=linspace(0,2*pi,100); >> y1=sin(x1); >> x2=linspace(0,3*pi,70); >> y2=1+sin(x2); >> plot(x1,y1,x2,y2)
的函数magic(n),其功能是生成一个n阶魔方阵。 观察magic(5),其元
素为1~25,每行每列
及对角线的和均为65 例: 将101~125等25个数填 入一个5行5列的表格中,使 其每行每列及对角线的和均 为565。
4.2 矩阵的结构变换
1、对角阵与三角阵
(1)对角阵 只有对角线上有非0元素的矩阵称为对角矩阵,对角线上的元素相等的 对角矩阵称为数量矩阵,对角线上的元素都为1的对角矩阵称为单位矩阵。 提取矩阵的对角线元素
第5章 MATLAB绘图
5.1 二维数据曲线图
5.1.1 绘制单根二维曲线 plot函数的基本调用格式为: plot(x,y)
其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
例5-1 在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x);
标用于x2,y2数据对。
例5-4 用不同标度在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。
程序如下:
x=0:pi/100:2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); plotyy(x,y1,x,y2);
第4章 MATLAB矩阵分析与处理
4.1 特殊矩阵 4.2 矩阵的结构变换 4.3 矩阵的逆
4.4 矩阵求值
4.1 特殊矩阵
1、通用特殊矩阵
zeros(m,n) m行n列的零矩阵; ones(m,n) m行n列的元素全为1的阵; eye(n) n阶单位矩阵; rand(m,n) m行n列[0,1]上均匀分布随机数矩阵 randn(m,n) 均值为0,方差为1的标准正态分布随机矩阵
5.2 设置曲线样式
MATLAB提供了一些绘图选项,用于确定所绘曲线
的线型、颜色和数据点标记符号,它们可以组合使用。
线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。
线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆 颜色:b蓝 ;g绿;r红; c青; m紫; y黄; k黑; w白;
例 先建立5×5矩阵A,然后将A的第一行元素乘以1,第
二行乘以2,…,第五行乘以5。
(2)三角阵
三角阵又进一步分为上三角阵和下三角阵,所谓上三
角阵,即矩阵的对角线以下的元素全为0的一种矩阵,而 下三角阵则是对角线以上的元素全为0的一种矩阵。 上三角矩阵 求矩阵A的上三角阵的MATLAB函数是triu(A)。 triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵A的第 k条对角线以上的元素。 下三角矩阵 在MATLAB中,提取矩阵A的下三角矩阵的函数是tril(A)和 tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k)完全 相同。
>> y=[1 2 3;4 5 6;7 8 9];
>> plot(x,y);
(2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵
坐标分别绘制曲线,曲线条数等于矩阵的列数。 >> x=[1 2 3;4 5 6;7 8 9]; >> y=[7 8 9;1 2 3;4 5 6]; >> plot(x,y); (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵 时,则按列绘制每列元素值相对其下标的曲线,曲线条数等 于输入参数矩阵的列数。 >> x=[1 2 3;4 5 6;7 8 9]; >> plot(x,y);
纵坐标范围默认在最大最 小值之间。
4.图形保持
hold on/off命令控制是保持原有图形还是刷新原有图
形,不带参数的hold命令在两种状态之间进行切换。
例4-5 采用图形保持,在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); plot(x,y1) hold on y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y2); hold off
例:建立3*3,3*2的和矩阵A同样大小的零矩阵 Zero(3,3) Zero(3,2) Zero(size(A))
例(1)在区间[20,50]内均匀分布的5阶随机矩阵
(2)均值为0.6,方差为0.1的5阶正态分布随机矩阵
任意[a,b]区间上均匀分布的随机数: yi a (b a) xi 均值为a,方差为b^2的随机数:
(2) 当输入参数有矩阵形式时,配对的x,y按对应列元
素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的 列数。
>> x1=linspace(0,2*pi,100); >> y1=sin(x1); >> x2=linspace(0,3*pi,100); >> y2=1+sin(x2); >> x3=[x1;x2]'; >> y3=[y1+2;y2+2]';
当选项省略时,MATLAB规定,线型一律用实线,颜色将
根据曲线的先后顺序依次。
要设置曲线样式可以在plot函数中加绘图选项,其调用格 式为: plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
>> x=0:pi/15:2*pi;
>> y1=sin(x); y2=cos(x); >> plot(x,y1,'b:+',x,y2,'g-.*')
2.矩阵的秩和迹
(1)矩阵的秩 矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中, 求矩阵秩的函数是rank(A)。 (2)矩阵的迹 矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征 值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。
3.矩阵的特征值与特征向量
在MATLAB中,பைடு நூலகம்算矩阵A的特征值和特征向量的函数 是eig(A),常用的调用格式有3种:
设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个
具有min(m,n)个元素的列向量。 diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。
构造对角矩阵
设V为具有m个元素的向量,diag(V)将产生一个m×m对角矩阵,其主对 角线元素即为向量V的元素。 diag(V)函数也有另一种形式diag(V,k),其功能是产生一个n×n(n=m+k) 对角阵,其第k条对角线的元素即为向量V的元素。
(1) E=eig(A):求矩阵A的全部特征值,构成向量E。
(2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D, 并求A的特征向量构成V的列向量。
例 用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0 p=[3,-7,0,5,2,-18]; A=compan(p); %求伴随矩阵A x1=eig(A) %求A的特征值 x2=roots(p) %直接求多项式p的零点
plot(x)
在这种情况下,当x是实向量时,以该向量元素的下标为 横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘 制折线图。
5.1.2 绘制多根二维曲线
1.plot函数的输入参数是矩阵形式
(1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不 同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这 些曲线共同的横坐标。 >> x=[1 2 3];
例5-6 在同一坐标内,分别用不同线型和颜色绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。 程序如下:
x=linspace(0,2*pi,1000); y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); k=find(abs(y1-y2)<1e-2); %查找y1与y2相等点(近似相等)的下标
MATLAB对矩阵A实施上下翻转的函数是flipud(A)。
4.3 矩阵的逆
1.矩阵的逆 对于一个方阵A,如果存在一个与其同阶的方阵B,使得: A· B=B· (I为单位矩阵)则称B为A的逆矩阵,当然,A也是B的 A=I 逆矩阵。 求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在 MATLAB中,求一个矩阵的逆非常容易。求方阵A的逆矩阵可调 用函数inv(A)。 例 求方阵A的逆矩阵,并验证其互逆。
x1=x(k);
%取y1与y2相等点的x坐标
y3=0.2*exp(-0.5*x1).*cos(4*pi*x1); %求y1与y2值相等点的y坐标 plot(x,y1,x,y2,'k:',x1,y3,'bp');
5.3 图形标注与坐标控制
1.图形标注
有关图形标注函数的调用格式为:
title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明)
2 1.5
1
0.5
0
-0.5
-1
plot(x,y)
-1.5
-2
0
1
2
3
4
5
6
7
例5-2 绘制曲线。 程序如下: t=0:0.1:2*pi; x=t.*sin(3*t); y=t.*sin(t).*sin(t); plot(x,y);
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0 -6
-4
-2
0
2
4
6
plot函数最简单的调用格式是只包含一个输入参数:
>> plot(x1,y1,x2,y2,x3,y3)
3.具有两个纵坐标标度的图形
在MATLAB中,如果需要绘制出具有不同纵坐标标 度的两个图形,可以使用plotyy绘图函数。调用格式为: plotyy(x1,y1,x2,y2)
其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标 度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐
例:用求逆矩阵的方法解线性方程组
x 2 y 3z 5 x 4 y 9 z 2 x 8 y 27 z 6
4.4 矩阵求值
1.方阵的行列式值 把一个方阵看作一个行列式,并对其按行列式的规则求值, 这个值就称为矩阵所对应的行列式的值。 在MATLAB中,求方阵A所对应的行列式的值的函数是 det(A)。