最新第二章MATLAB语言基础

上传人:pm****9 文档编号:181573427 上传时间:2021-05-02 格式:PPT 页数:45 大小:158KB
返回 下载 相关 举报
最新第二章MATLAB语言基础_第1页
第1页 / 共45页
最新第二章MATLAB语言基础_第2页
第2页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《最新第二章MATLAB语言基础》由会员分享,可在线阅读,更多相关《最新第二章MATLAB语言基础(45页珍藏版)》请在金锄头文库上搜索。

1、第二章MATLAB语言基础,1,第二章 MATLAB语言基础,主要内容: (1)概述 (2)创建向量 (3)创建矩阵 (4)向量和矩阵元素的索引(重点) (5)向量和矩阵的基本操作 (重点) (6)多维数组,第二章MATLAB语言基础,2,(1)概述,数组:一组有序数的集合,下标是指数组元素在数组中的序号,每个元素有唯一的下标。,向量: 从编程语言的角度上看,向量其实就是一维数组; 从数学的角度上看,向量就是1N或者N1的矩阵,即行向量或列向量; 从物理意义上看,表示不仅有大小还有方向的量,与标量相对应。,第二章MATLAB语言基础,3,矩阵:即线性代数中定义的矩阵的概念,一个二维的数据表,每

2、个元素位于不同的行和列上,从编程语言的角度看,矩阵就是二维数组。,MATLAB的基本运算单位就是矩阵和向量,M语言是向量化编程的语言。,MATLAB中的向量和矩阵都是使用1下标,而不是C语言中的零下标。,MATLAB中矩阵元素是按列存储的,C语言中是按行存储的。,第二章MATLAB语言基础,4,(2)创建向量,直接输入法: 行向量元素之间用空格(不论个数)或者逗号隔开,列向量元素之间用分号隔开.,例: 创建向量 a=1 3 5 8 9 a = 1 3 5 8 9 a=1,3,5,6,9 a = 1 3 5 6 9, b=1;5;6;8;9 b = 1 5 6 8 9,也可采用对行向量取转置的方

3、法构造列向量,第二章MATLAB语言基础,5,使用冒号运算符: 一般格式为start : increment : end,分别表示初值、增量和终值。,例: a=1:3:9 a = 1 4 7 增量可以为负数 a=10:-2:2 a = 10 8 6 4 2,增量缺省时默认为1 b=1:6 b = 1 2 3 4 5 6,冒号运算符可以与直接输入法混用, a=2 5 6:8 a = 2 5 6 7 8,第二章MATLAB语言基础,6,使用向量生成函数linspace和logspace : 使用linspace生成线性空间向量,均匀间隔的一组数; 使用logspace生成对数空间向量,以10为底.

4、 例: a=linspace(1,10,6) a = 1.0000 2.8000 4.6000 6.4000 8.2000 10.0000 b=logspace(1,5,5)%指数之间均匀间隔 b = 10 100 1000 10000 100000,第二章MATLAB语言基础,7,使用数组编辑器:交互式输入法,比较直观。,还有其他办法吗?,从已有向量或矩阵中计算得到; 从外部文件读入;,第二章MATLAB语言基础,8,(3)创建矩阵,直接输入法:一行中元素之间用逗号或者空格隔开,行与行之间用分号隔开。 例: M=1 2 3;4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9,

5、 M=1,2,3;4,5,6;7,8,9 M = 1 2 3 4 5 6 7 8 9,第二章MATLAB语言基础,9,还可以分行输入矩阵元素 M=1 2 3 4 5 6 7 8 9 M = 1 2 3 4 5 6 7 8 9,第二章MATLAB语言基础,10,使用矩阵生成函数:zeros, ones, eye, rand, randn, magic 例: 全零矩阵 M=zeros(3,3) M = 0 0 0 0 0 0 0 0 0,全1矩阵 M=ones(3,4) M = 1 1 1 1 1 1 1 1 1 1 1 1,第二章MATLAB语言基础,11,单位矩阵 M=eye(3,3) M =

6、 1 0 0 0 1 0 0 0 1,01之间均匀分布的随机矩阵 rand(3,4) ans = 0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919,第二章MATLAB语言基础,12,零均值、方差为1的高斯分布矩阵 M=randn(3,3) M = 0.1746 -0.5883 0.1139 -0.1867 2.1832 1.0668 0.7258 -0.1364 0.0593,魔方矩阵(每行每列以及对角线上元素之和相同) magic(4) ans = 16 2 3 13 5 1

7、1 10 8 9 7 6 12 4 14 15 1,此外,还有范德蒙矩阵、希尔伯特矩阵、托普利兹矩阵、帕斯卡矩阵等。,第二章MATLAB语言基础,13,使用数组编辑器:交互式输入法,比较直观。,还有其他办法吗?,从已有向量或矩阵中计算得到; 从外部文件读入;,第二章MATLAB语言基础,14,(4)向量和矩阵元素的索引,一个元素的访问,例: 访问向量的一个元素 a=3 6 9 2 8; a(2) %访问第二个元素,单下标 ans = 6 a(end)%访问最后一个元素,单下标 ans = 8,第二章MATLAB语言基础,15,访问矩阵的一个元素, M=1 3 9;6 4 8;3 6 0 M =

8、 1 3 9 6 4 8 3 6 0 M(2,2)%双下标 ans = 4, M(6)%单下标 ans = 6 M(end)%访问最后一个元素,单下标 ans = 0,第二章MATLAB语言基础,16,若干元素的访问(向量或者矩阵做下标),例: 访问向量的若干元素 a=3 6 8 2 4 1; a(1:3)%访问13个元素,单向量下标 ans = 3 6 8 a(1 3 5)%访问第1、3、5个元素,单向量下标 ans = 3 8 4 a(end-1:end)%访问最后两个元素,单向量下标 ans = 4 1,第二章MATLAB语言基础,17,访问矩阵的若干元素 M=3 6 8;3 4 5;1

9、 2 6 M = 3 6 8 3 4 5 1 2 6, a(1 3;2 4)%使用矩阵做下标 ans = 3 8 6 2, a(1:3,3:-1:1)%重复访问向量元素,单向量下标 ans = 3 6 8 8 6 3, a(:)%访问向量所有元素 ans = 3 6 8 2 4 1,第二章MATLAB语言基础,18, M(1 2,2,3)%访问第1、2行的第2,3列,双向量下标; ans = 6 8 4 5 M(1:3,1:2) %访问第13行的第12列,双向量下标 ans = 3 6 3 4 1 2, M(1 3 5)%访问第1、3 、5 个元素,单向量下标 ans = 3 1 4,第二章M

10、ATLAB语言基础,19, M(1 3;2 4)%矩阵做下标 ans = 3 1 3 6 M(:)%访问矩阵的所有元素 ans = 3 3 1 6 4 2 8 5 6,向量可以做向量和矩阵的下标,矩阵也可以做向量和矩阵的下标, M(1,:) %访问第1行的所有列 ans = 3 6 8,向量和矩阵做下标的访问方法也可以用来创建向量和矩阵,第二章MATLAB语言基础,20,(5)向量和矩阵的基本操作,求向量长度和矩阵大小,元素个数 例: a=1 3 6 8 4 5 a = 1 3 6 8 4 5 length(a) ans = 6,第二章MATLAB语言基础,21, M=1 2 3;4 5 6;

11、7 8 9 M = 1 2 3 4 5 6 7 8 9 m,n=size(M) m = 3 n = 3 Matlab里的函数可以有多个返回值, numel(M) ans = 9,第二章MATLAB语言基础,22,矩阵的拼接和复制 例: M=1 2;3 4 M = 1 2 3 4 N=5 6 7;8 9 10 N = 5 6 7 8 9 10, L=M,N c = 1 2 5 6 7 3 4 8 9 10, repmat(M,2,2) ans = 1 2 1 2 3 4 3 4 1 2 1 2 3 4 3 4,第二章MATLAB语言基础,23,矩阵的重组reshape 例: a=1:8 a =

12、1 2 3 4 5 6 7 8 M=reshape(a,2,4) M = 1 3 5 7 2 4 6 8 N=reshape(M,4,2) N = 1 5 2 6 3 7 4 8,重组的时候按列序,第二章MATLAB语言基础,24,矩阵的翻转: 例: M=1 2 3;4 5 6 M = 1 2 3 4 5 6 N=fliplr(M)%左右翻转 N = 3 2 1 6 5 4 L=flipud(M)%上下翻转 L = 4 5 6 1 2 3,第二章MATLAB语言基础,25,行列删除:利用空数组 例: M=1 2 3;4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9 M(1,:

13、)=%删除第一行 M = 4 5 6 7 8 9 M(:,2)=%再删除第二列 a = 4 6 7 9,第二章MATLAB语言基础,26, N=3 6 9;2 8 4;6 5 1 N = 3 6 9 2 8 4 6 5 1 N(1:2,:)=%删除第1、2行 b = 6 5 1,第二章MATLAB语言基础,27,矩阵的转置,实数矩阵 例: M=1 2 3;4 5 6 M = 1 2 3 4 5 6 N=M N = 1 4 2 5 3 6 %共轭转置, L=M. L = 1 4 2 5 3 6 %转置,第二章MATLAB语言基础,28,复数矩阵 例: M=1+2i 2+3i;2+i 1-i M

14、= 1.0000 + 2.0000i 2.0000 + 3.0000i 2.0000 + 1.0000i 1.0000 - 1.0000i N=M N = 1.0000 - 2.0000i 2.0000 - 1.0000i 2.0000 - 3.0000i 1.0000 + 1.0000i L=M. L = 1.0000 + 2.0000i 2.0000 + 1.0000i 2.0000 + 3.0000i 1.0000 - 1.0000i,第二章MATLAB语言基础,29,矩阵的加减乘除法 例: M=1 2;3 4 M = 1 2 3 4 N=5 6;7 8 N = 5 6 7 8, L=M

15、+N L = 6 8 10 12 F=M-N F = -4 -4 -4 -4,第二章MATLAB语言基础,30, K=M*N%矩阵乘法,满足矩阵乘法的规则 K = 19 22 43 50 G=M.*N%点乘(数组乘),对应元素相乘 G = 5 12 21 32 H=M./N %点除(数组除),对应元素相除 H = 0.2000 0.3333 0.4286 0.5000,第二章MATLAB语言基础,31,方阵的行列式 例: M=1 3 5;2 8 1;3 2 1 M = 1 3 5 2 8 1 3 2 1 det(M) ans = -91,第二章MATLAB语言基础,32,方阵求逆 例:, M=

16、1 3 5;2 8 1;3 2 1 M = 1 3 5 2 8 1 3 2 1 N=inv(M) N = -0.0659 -0.0769 0.4066 -0.0110 0.1538 -0.0989 0.2198 -0.0769 -0.0220,第二章MATLAB语言基础,33,矩阵的伪逆,当A不是方阵或者是方阵但其行列式值为零的时候,矩阵A没有逆矩阵,但有逆矩阵B,使得 A*B*A=A B*A*B=B 求伪逆的命令为pinv,第二章MATLAB语言基础,34,矩阵的秩 例: M=1 2 3;2 4 6;2 8 4 M = 1 2 3 2 4 6 2 8 4 rank(M) ans = 2,第二章MATLAB语言基础,35,矩阵的特征值 例: M=1 2 3;2 4 6;2 8 4 M = 1 2 3 2 4 6 2 8 4 eig(M) ans = 11.8655 -0.0000 -2.8655,第二章MATLAB语言基础,36,矩阵的迹,矩阵的迹等于矩阵对角线元素之和,也等于矩阵特征值之和; 求矩阵迹的命令是trace,第二章MATLAB语言基础,37,基本数学函数运算 三角函数si

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号