MATLAB 小知识 第二篇 矩阵运算1
2014-07-25 21:30
253 查看
1. 矩阵的创建
使用逗号 “,”或者空格 “ ” 分隔矩阵的列; 使用分号 “;”或者 回车键来分隔矩阵的行!
如 A = [1,1,1; 2 2 2
3 3 3;4 4,4];注意一行中可以出现空格与逗号的联合使用。还有如果在命令行中输入该命令时,在换行的时候不能直接按 Enter键,在matlab中Enter是执行键,我们需要按 Shift+Enter就可以实现换行了!
2.矩阵中的元素必须是数字或者值已经确定的变量和表达式。(没试过变大事或者已赋值变量的可试试)
3。矩阵构造符[]只能用来生成二维矩阵,不能创建高维数组。
4.几种不常用的矩阵构造函数
rand 均匀分布随机矩阵
randn 正态分布随机矩阵
diag 对角矩阵 (还可以计算一个矩阵的迹)
compan 伴随矩阵
gallery 测试矩阵
hadamard Hadamard矩阵
hilb Hilbert矩阵
invhilb Hilbert转置矩阵
rosser 经典对阵特征值测试矩阵
toeplitz Toeplitz矩阵
pascal Pascal 矩阵
vander Vandernonde矩阵
wilkinson Wilkinson 特征值测试矩阵
>> diag(eye(4))
ans =
1
1
1
1
>> diag(ans)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> a = [ 1 2 3];
>> diag(a,-1) %对角线元素的偏移
ans =
0 0 0 0
1 0 0 0
0 2 0 0
0 0 3 0
5.矩阵的拼接
水平拼接:C = [A B] or C = [A,B] or horzcat函数 or cat(2,A,B)
垂直拼接:C = [A;B] or vertcat函数 or cat(1,A,B)
repmat函数
W = eye(2)
W =
1 0
0 1
>> Y = repmat(W,2,3)
Y =
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
新矩阵Y可以看成2*3的矩阵,每一个“元素”都是矩阵W。
blkdiag函数:用现有矩阵构造对角阵
a = [1,2,3; 2 3 4];
>> b = [1 2;3,4;5 6];
>> blkdiag(a,b)
ans =
1 2 3 0 0
2 3 4 0 0
0 0 0 1 2
0 0 0 3 4
0 0 0 5 6
矩阵a,b不用是方阵,也不需要尺寸对应。
6.改变矩阵尺寸
a = magic(3); 缩小 a(:,3) = [] 小了一列; 扩大 a(:,4) = 3;大了一列
注意:a(2,1) = [];是不对的,在线性下标下可以用该方法删除一个或多个元素,得到矩阵的剩余元素排列成为行向量 a(1:3:end) = [] 是可以的。结果
a =
3 4 5 9 7 2
7.改变矩阵形状的函数
reshape 重新排列矩阵
rot90 矩阵逆时针旋转90度
fliplr 垂直方向为轴翻转矩阵
flipud 水平方向为轴翻转矩阵
flipdim 指定方向为轴翻转矩阵
A= magic(3)
A =
8 1 6
3 5 7
4 9 2
>> B = reshape(A,1,9)
B =
8 3 4 1 5 9 6 7 2
在使用reshape函数,由A矩阵线性排列转化为B矩阵,在转化为矩阵B时,按列排列 下面代码验证
C = magic(4)
C =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> D = reshape(C,2,8)
D =
16 9 2 7 3 6 13 12
5 4 11 14 10 15 8 1
fliplr 和 flipud在翻转时以矩阵的中心行列为轴!当行列为奇数时,中心轴不变位置,当行列为偶数时,其实中心轴为是无形的 例:
fliplr(A)
ans =
6 1 8
7 5 3
2 9 4 奇数: 红色的列为中心轴
fliplr(C)
ans =
13 3 | 2 16
8 10 | 11 5
12 6 | 7 9
1 15 | 14 4 偶数:红线为中心轴!
8. 函数linspace and logspace
linspace(a,b) 生成一个首尾分别为a和b的100个数
linspace(a,b,n) 生成一个首尾分别为a和b的n个数
logspace(a,b) 在[10的a次幂,10的b次幂]区间生成50个差值相等的数,并且返回50个数以10为底的幕组成的行向量
logspace(a,b,n)跟上面差别不大,只是该形式生成n个等差的数且返回!
9.空矩阵和 0矩阵不是一个概念!前者是没有元素,后者是元素均为0.
10.两个空矩阵的拼接为空矩阵,一个非空矩阵和一个空矩阵的拼接,结果为非空矩阵本身!
该文主要用于记录本人的学习,如果对您有所帮助,乃是我的荣幸!该文均为本人学习过程中手打,如有错误还请指出,谢谢!
使用逗号 “,”或者空格 “ ” 分隔矩阵的列; 使用分号 “;”或者 回车键来分隔矩阵的行!
如 A = [1,1,1; 2 2 2
3 3 3;4 4,4];注意一行中可以出现空格与逗号的联合使用。还有如果在命令行中输入该命令时,在换行的时候不能直接按 Enter键,在matlab中Enter是执行键,我们需要按 Shift+Enter就可以实现换行了!
2.矩阵中的元素必须是数字或者值已经确定的变量和表达式。(没试过变大事或者已赋值变量的可试试)
3。矩阵构造符[]只能用来生成二维矩阵,不能创建高维数组。
4.几种不常用的矩阵构造函数
rand 均匀分布随机矩阵
randn 正态分布随机矩阵
diag 对角矩阵 (还可以计算一个矩阵的迹)
compan 伴随矩阵
gallery 测试矩阵
hadamard Hadamard矩阵
hilb Hilbert矩阵
invhilb Hilbert转置矩阵
rosser 经典对阵特征值测试矩阵
toeplitz Toeplitz矩阵
pascal Pascal 矩阵
vander Vandernonde矩阵
wilkinson Wilkinson 特征值测试矩阵
>> diag(eye(4))
ans =
1
1
1
1
>> diag(ans)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> a = [ 1 2 3];
>> diag(a,-1) %对角线元素的偏移
ans =
0 0 0 0
1 0 0 0
0 2 0 0
0 0 3 0
5.矩阵的拼接
水平拼接:C = [A B] or C = [A,B] or horzcat函数 or cat(2,A,B)
垂直拼接:C = [A;B] or vertcat函数 or cat(1,A,B)
repmat函数
W = eye(2)
W =
1 0
0 1
>> Y = repmat(W,2,3)
Y =
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
新矩阵Y可以看成2*3的矩阵,每一个“元素”都是矩阵W。
blkdiag函数:用现有矩阵构造对角阵
a = [1,2,3; 2 3 4];
>> b = [1 2;3,4;5 6];
>> blkdiag(a,b)
ans =
1 2 3 0 0
2 3 4 0 0
0 0 0 1 2
0 0 0 3 4
0 0 0 5 6
矩阵a,b不用是方阵,也不需要尺寸对应。
6.改变矩阵尺寸
a = magic(3); 缩小 a(:,3) = [] 小了一列; 扩大 a(:,4) = 3;大了一列
注意:a(2,1) = [];是不对的,在线性下标下可以用该方法删除一个或多个元素,得到矩阵的剩余元素排列成为行向量 a(1:3:end) = [] 是可以的。结果
a =
3 4 5 9 7 2
7.改变矩阵形状的函数
reshape 重新排列矩阵
rot90 矩阵逆时针旋转90度
fliplr 垂直方向为轴翻转矩阵
flipud 水平方向为轴翻转矩阵
flipdim 指定方向为轴翻转矩阵
A= magic(3)
A =
8 1 6
3 5 7
4 9 2
>> B = reshape(A,1,9)
B =
8 3 4 1 5 9 6 7 2
在使用reshape函数,由A矩阵线性排列转化为B矩阵,在转化为矩阵B时,按列排列 下面代码验证
C = magic(4)
C =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> D = reshape(C,2,8)
D =
16 9 2 7 3 6 13 12
5 4 11 14 10 15 8 1
fliplr 和 flipud在翻转时以矩阵的中心行列为轴!当行列为奇数时,中心轴不变位置,当行列为偶数时,其实中心轴为是无形的 例:
fliplr(A)
ans =
6 1 8
7 5 3
2 9 4 奇数: 红色的列为中心轴
fliplr(C)
ans =
13 3 | 2 16
8 10 | 11 5
12 6 | 7 9
1 15 | 14 4 偶数:红线为中心轴!
8. 函数linspace and logspace
linspace(a,b) 生成一个首尾分别为a和b的100个数
linspace(a,b,n) 生成一个首尾分别为a和b的n个数
logspace(a,b) 在[10的a次幂,10的b次幂]区间生成50个差值相等的数,并且返回50个数以10为底的幕组成的行向量
logspace(a,b,n)跟上面差别不大,只是该形式生成n个等差的数且返回!
9.空矩阵和 0矩阵不是一个概念!前者是没有元素,后者是元素均为0.
10.两个空矩阵的拼接为空矩阵,一个非空矩阵和一个空矩阵的拼接,结果为非空矩阵本身!
该文主要用于记录本人的学习,如果对您有所帮助,乃是我的荣幸!该文均为本人学习过程中手打,如有错误还请指出,谢谢!
相关文章推荐
- MATLAB 小知识 第二篇 矩阵运算2
- matlab矩阵运算
- matlab矩阵及其基本运算—特征值分解和奇异值分解
- MATLAB矩阵的基本数学运算
- MATLAB矩阵运算(1)
- MATLAB中矩阵及其运算
- MATLAB图像处理基础知识3 稀疏矩阵变全矩阵full 保存矩阵到txt文件save
- Matlab矩阵基本操作(定义,运算)
- 图像处理 估计退化函数之运动模糊和矩阵matlab运算的一些实验情况
- [转载]Matlab矩阵运算
- matlab与opoencv之间的基本矩阵运算转换
- matlab矩阵运算
- 2.深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)
- Python知识(6)--numpy做矩阵运算
- MATLAB图像处理基础知识3 替换矩阵的数值A(A<0) = 1
- matlab 矩阵运算技巧
- matlab笔记(2)----矩阵及其运算
- 深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)
- matlab入门教程七 ----- 矩阵运算&线性方程组&特征值
- Matlab中矩阵运算