当前位置:文档之家› (优选)第二讲向量与矩阵运算

(优选)第二讲向量与矩阵运算

空间中所有的变量存到
data.mat文件中。 save data a b ——将工作空间中a和b变量存
到data.mat文件中。 下次运行matlab时即可用load指令调用已生成 的mat文件。
load —— load data —— load data a b ——
自己动手
A(:) 与 A(:,:) 的区别 ? 如何获得由 A 的第一、三行和第一、二列组成的子矩阵?
b=[a(1,1:2);a(3,1:2)]
矩阵操作
矩阵的旋转
fliplr(A) 左右旋转 flipud(A) 上下旋转 rot90(A) 逆时针旋转 90 度;
rot90(A,k) 逆时针旋转 k×90 度
例如 a=[1 2 0;3 0 5;7 8 9] a =1 2 0
305 789 a(3,3)=0 a =1 2 0 305 780
数据的保存与获取
把matlab工作空间中一些有用的数据 长久保存下来的方法是生成mat数据文 件。 save —— 将工作空间中所有的变量 存到matlab.mat文件中。
矩阵操作
改变矩阵的形状:reshape
reshape(A,m,n): 将矩阵元素按 列方向 重组成m*n的矩阵 重组后得到的新矩阵的元素个数 必须与原矩阵元素个数相等!
矩阵操作
查看矩阵的大小:size
size(A) 列出矩阵 A 的行数和列数 size(A,1) 返回矩阵 A 的行数 size(A,2) 返回矩阵 A 的列数
(优选)第二讲向量与矩阵 运算
向量的生成 ✓ 直接输入: ✓ 冒号运算符:形式x=x0:step:xn
例:a=[1:4] ==> a=[1, 2, 3, 4]
b=[0:pi/3:pi] ==> b=[0, 1.0472, 2.0944, 3.1416] c=[6:-2:0] ==> c = [6, 4, 2, 0]
✓ 用matlab函数
A=linspace(1,5) %产生1~5的100个线性等间隔 的数 注意:与冒号运算符方法的区别
A=logspace(1,5) %产生10^1~10^5的50个对数 等间隔的数
注意:matlab严格区分大小写字母,因此a与A 是两个不同的变量。
matlab函数名必须小写。
矩阵的生成
注意:此时[ ]可不用。 冒号的作用:用于生成等间隔的向量, 默认间隔为1。
向量的生成 ✓ 直接输入: ✓ 冒号运算符 ✓ 从矩阵中抽取行或列
A=[1 2 3; 4 5 6;7 8 9];
B=A(1,:)
B=
123
冒号的作用:用于用于选出矩阵指定 行、列及元素。
向量的生成 ✓ 直接输入: ✓ 冒号运算符 ✓ 从矩阵中抽取行或列
例:>> A=[1 2 3; 4 5 6]
>> size(A) >> size(A,1) >> size(A,2)
length(x) 返回向量 X 的长度 length(A) 等价于 max(size(A))
矩阵基本运算
矩阵的加减:对应分量进行运算
要求: 1.参与加减运算的矩阵具有相同的维数 2.允许参与运算的两矩阵之一是标量。标量与矩阵的 所有元素分别进行加减操作。
c=cross(A,B,dim)
矩阵操作
提取矩阵的部分元素: 冒号运算符
A(:) A的所有元素 A(:,:) 二维矩阵A的所有元素 A(:,k) A的第 k 列, A(k,:) A的第 k 行 A(k:m) A的第 k 到第 m 个元素 A(:,k:m) A的第 k 到第 m 列组成的子矩阵
提取一个矩阵的上三角部分 产生 0~1 间均匀分布的随机矩阵 m=n 时简写为 rand(n)
randn(m,n) 产生均值为0,方差为1的标准正态分布随机矩阵 m=n 时简写为 randn(n)
矩阵的修改
直接修改
可用键找到所要修改的矩阵,用键移动到要修改的 矩阵元素上即可修改。
指令修改 可以用A(,)= 来修改。
✓ 直接输入: A=[1, 2, 3; 4, 5, 6; 7, 8, 9] ✓ 由向量生成 ✓ 通过编写m文件生成 ✓ 通过外部数据文件加载 ✓ 由函数生成
例:>> x=[1,2,3];y=[2,3,4]; >> A=[x,y], B=[x;y]
例:>> load A.mat 例:>> C=magic(3)
常见矩阵生成函数
zeros(m,n) ones(m,n)
eye(m,n)
diag(X)
tril(A) triu(A) rand(m,n)
生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n)
生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 提取一个矩阵的下三角部分
例:>> A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4]
>> C=A+B; D=A-B;
矩阵的普通乘法
要求参与运算的矩阵满足线性代数中矩阵相乘的原则, 标量可与任何矩阵相乘
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
向量的运算
向量的加减(数加减): 向量的数乘 向量的点积: 格式:c=dot(A,B)%返回向量A、B的标量积。 A、B必须长度相等,与sum(a.*b)等效)
c=dot(A,B,dim) 向量的叉积: 格式:c=cross(A,B)%返回向量A、B的叉 积向量。 A、B必须3个元素的向量
例:>> A=[1 2 3;4 5 6]
>> B=fliplr(A) >> C=flipud(A) >> D=rot90(A), E=rot90(A,-1)
矩阵操作
矩阵的转置与共轭转置
’ 共轭转置 .’ 转置,矩阵元素不取共轭
点与单引号之间不能有空格!
例:>> A=[1 2;2i 3i]
>> B=A’ >> C=A.’
相关主题