向量和矩阵的简单操作
Matlab基础与应用 20170208
2.4 矩阵及其运算
2.4.1矩阵的定义 2.矩阵与向量的互相转换
矩阵转为向量 x = A(:) % 矩阵转为列向量
如: 将矩阵 A转为向量 >> A = [1, 2, 3;4 5 6;7 8, 9]; >> x = A(:)
Matlab基础与应用 20170208
2.4 矩阵及其运算
2.矩阵与向量的互相转换 向量转为矩阵 A = reshape(x, [m, n]) % 将向量x转为m行n列的矩阵 如: 定义长度为18的向量,将其转为3行6列的矩阵。 >> x = 1:18 ; >> A = reshape(x, [3, 6])%
%A = reshape(x,3,[]) 或 A = reshape(x,[],6])
Matlab基础与应用 20170208
2.3 向量及其运算
2.3.3向量的基本运算
如: x=a+b=[8 10 12]; y=a+2=[3 4 5]
如: z=a*2=[2 4 6];w=a/2=[0.5000 1.0000 1.5000] 如: x=a.*b=[7 16 27]
加减
数乘/数除
点乘
点积 叉积
如: y=dot(a,b)=50 %dot(a,b)=sum(a.*b),力学:合力
如: z=cross(a,b)=[-6 12 -6] %空间几何:法向量
Matlab基础与应用 20170208
课堂练习
1. P39-41 例子的命令
2. 创建等差向量a,在10~99之间,步长为4。
P44例2.15
Matlab基础与应用 20170208
矩阵旋转
格式 B = rot90 (A) %将矩阵A逆时针方向 旋转90° B = rot90 (A,k) %将矩阵A逆时针方向旋转 (k×90°),k可取正负整数。
Matlab基础与应用 20170208
2.4 矩阵及其运算
矩阵的翻转
利用M文件建立矩阵
2. 存盘(文件名为mymatrix.m)。 3. 在命令窗口中输入mymatrix,即运行该M文 件,就建立一个名为MYMAT的矩阵。
Matlab基础与应用 20170208
使用冒号表达式建立矩阵
A=[1:3; 4:6; 7:9]
A =[linspace(1,100,4); logspace(1,3,4)]
2.4 矩阵及其运算
2.4.7 特殊矩阵
零矩阵:zeros 一矩阵:ones 单位阵:eye 对角阵:diag 随机阵:rand 、randn
魔方阵:magic
Matlab基础与应用 20170208
2.4 矩阵及其运算
2.4.7 特殊矩阵
函数名 zeros(m) zeros(m,n) ones(m) ones(m,n) 说明 创建m×m的全零矩阵 创建m×n的全零矩阵 创建m×m的全1矩阵 创建m×n的全1矩阵
Matlab基础与应用 20170208
2.4 矩阵及其运算
2.4.3 矩阵拼接 B = repmat(A, [m,n]) % 将矩阵A拼接为大矩阵
示例:通过矩阵拼接定义新的矩阵。
>> A = [1 2 3; 4 5 6]; >> B = repmat(A,3,2)
% 3×2共6个A矩阵
Matlab基础与应用 20170208
矩阵的存储方式(顺序)与索引访问
通过:,把矩阵转为向量 x = A(:) % 矩阵转为列向量
>> A = [1 2 3;4 5 6;7 8 9]; >> x = A(:) 在矩阵中,按列存储
1st
4th
7th
2nd
5th
8th
3rd
6th
9th
Matlab基础与应用 20170208
2.2 MATLAB数据类型
Matlab基础与应用
矩阵和向量的基本运算
郑中杰 实验教学部 2017年
Matlab基础与应用 20170208
2.2 MATLAB数据类型
理解术语:Matlab的标量、向量、矩阵、数组
名称 说明
单个数据 一行或一列数据
a=2 (1行1列)
示例
1×1矩阵 1×4矩阵
4×1矩阵 2×3矩阵
标量
向量 矩阵
Matlab基础与应用 20170208
2.3 向量及其运算
2.3.2 向量的数据提取 matlab将矩阵的全部元素按列存储,矩阵中的元素可 用序号标示,也可用行列标示。
利用序号提取数据(序号即索引号)
如: a(2)=8,a(3)=9,b(4)=4
利用冒号提取数据
如: a(2:4) %表示a(2)、a(3)、a(4) 如: a(:) %表示全部元素
>> A = [1 2 3; 4 5 6; 7 8 9] >> B1 = flipud(A)
>> B2 = fliplr(A)
Matlab基础与应用 20170208
按指定维度(x还是y方向)
函数 flipdim 格式 B = flipdim(A,dim) 说明: flipdim(A,1) = flipud(A) flipdim(A,2)=fliplr(A)。
Matlab基础与应用 20170208
示例
2.4 矩阵及其运算
均匀分布随机矩阵(均值为0.5) 利用随机数函数生成矩阵P44
函数名 说明 示例
rand(n) rand(m,n)
产生一个0~1区间的n×n的均匀 随机数矩阵 产生一个0~1区间的m×n的均匀 随机数矩阵
产生m×n的随机整数[A,B]公式: round((B-A)*rand(m,n)+A)
3. 创建等差向量b,在10~99之间,点数为20。 4. 提取向量a的第9个和第19个元素。 5. 提取向量b的第9~19个元素。
Matlab基础与应用 20170208
矩阵的定义方式:直接输入
Matlab基础与应用 20170208
矩阵的定义方式:直接输入
注意输入的时候,(空格)…
Matlab基础与应用 20170208
矩阵及其简单运算
Matlab基础与应用 20170208
2.3 向量及其运算
向量:一行或一列数据,即1×n或n×1的矩阵。 2.3.1 向量的定义P39 1.逐个输入向量元素 a = [7, 8, 9, 4, 5] c = a'
% 定义行向量
b = [7; 8; 9; 4; 5] % 定义列向量
% a' 表示 a 的转置: b=a'=c
Matlab基础与应用 20170208
Matlab基础与应用 20170208
利用M文件建立矩阵
对于比较大且比较复杂的矩阵,可以为它专门 建立一个M文件。 1. 启动MATLAB文本编辑器,输入: MYMAT=[101,102,103,104,105; 201,202,203,204,205; 301,302,303,304,305]
Matlab基础与应用 20170208
双下标访问 x = a(i, j) % 访问矩阵a的第i行第j列的元素 >> x=a(2,3) %x=? 单下标访问 x = a(k) % 访问矩阵a的第k个元素,即序号为k >> x=a(7) % x=? 注:矩阵按列进行存储。
Matlab基础与应用 20170208
如何提取多个 元素?冒号
P44例2.15
Matlab基础与应用 20170208
2.4 矩阵及其运算
正态分布随机矩阵 利用随机数函数生成矩阵P44
函数名 说明 示例
randn(n)
产生一个均值为0,方差为1的 n×n的正态分布随机数矩阵
randn(m,n)
产生一个均值为0,方差为1的 m×n的正态分布随机数矩阵
产生m×n的均值为x,标准差为y的正态随机数公式: x+y*randn(m,n)
示例
数组
m*n*p*……*q的多维数据 多维矩阵:除了行和列以外还有一个维度
在工程应用中,数组和矩阵这两个术语常常交互使用。 但并非所有的数组都是矩阵,二者的运算有明显区别。 如:矩阵乘法不满足交换律(A*B≠B*A) 矩阵常应用于线性代数,定义比较严格,也称矩阵代数。
Matlab基础与应用 20170208
Matlab基础与应用 20170208
2.3 向量及其运算
2.规模化定义向量 调用linspace函数生成等间隔向量
调用格式: x = linspace(初值, 终值, 向量长度)
a=linspace(1,12)
% 1~12范围内生成100个等差等间隔数据
b=linspace(1,12,6) % 1~12范围内生成6个等间隔数据
Matlab基础与应用 20170208
2.3 向量及其运算
2.3.1 向量的定义 2.规模化定义向量
利用冒号生成等间隔向量
a=1:2:12 b=12:-2:1 c=1:1:6
% 表范围内,-2为步长
% 表示1~6范围内,1为步长(可省略),即c=1:6
data1 = A(2:3, 2:3)
data2 =A(:, 1:3)
Matlab基础与应用 20170208
%若要访问不连续的元素,可以通过把索引写 出向量的形式进行访问 data = A([1 3],[2 3])
Matlab基础与应用 20170208
end:表示某一维的末尾元素下标。