向量与矩阵的生成
向量生成
1.直接输入
2.冒号运算符
3,从矩阵中抽取行或列
x=[1,2,3]
a=[1:4]
b=[0:pi/3:pi]
c=[6:-2:0]
矩阵的生成
1.直接输入:
A=[1,2,3;4,5,6'7,8,9]
2.由向量生成
3.通过编写m文件生成
4.由函数生成
x=[1,2,3];y=[2,3,4];
A=[x,y],b=[x;y]
常见矩阵生成函数
zeros(m,n) | 生成一个m行n列的零矩阵,m=n时可以简写成zeros(n) |
---|---|
ones(m,n) | 元素全是1的矩阵 |
eye(m,n) | 生成主对角线全是1的m行n列矩阵,m=n简写成eye(n) |
diag(X) | 若X是矩阵,则diag(X)为X的主对角线向量;若X是向量,则diag(X)生成以X为主对角线的对角矩阵 |
tril(A) | 提取一个矩阵的下三角部分 |
triu(A) | 提取下三角 |
rand(m,n) | 产生0~1间均匀分布的随机矩阵,m=n时简写成rand(n) |
randn(m,n) | 产生均值为0,方差是1的标准正态分布随机矩阵,m=n简写成randn(n) |
例子:
建立20~50之间均匀分布的5阶随机矩阵:
x=20+(50-20)*rand(5)
均值为0.6、方差为0.1的5阶正态分布
0.6+sqrt(0.1)*randn(5)
用于专门学科的特殊矩阵
(1)魔方矩阵
魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵
(2)范德蒙矩阵
范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。例如,A=vander([1;2;3;5])即可得到上述范得蒙矩阵。
(3)希尔伯特矩阵hilb(n)
xi,j=1/(i+j-1)
在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。 使用一般数值方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。
(4)帕斯卡矩阵
(x+y)^n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。