欢迎访问我的新博客:http://www.milkcu.com/blog/
原文地址:http://www.milkcu.com/blog/archives/1370588160.html
标题:MATLAB矩阵
内容:MATLAB是MATrix LABoratory的简称,数据的处理是以矩阵为基本单位的。
作者:MilkCu(http://blog.csdn.net/milkcu)
矩阵的建立
命令窗口直接输入
优点:
灵活构建任意结构、任意数据的矩阵;
语法规则:
- 矩阵元素应当放在方括号内;
- 行内元素用逗号或空格隔开;
- 行之间用分号或回车分隔;
- 元素可以是数值或表达式;
使用“from : step : to”方式
只能生成线性的、等间隔的向量。
当参数step省略时,系统默认step = 1。
使用linspace函数
在指定区间内生成线性等分向量。中间的值,将根据a、b及向量个数n等分产生。
调用格式为linspace(a, b, n)。
其中a表示向量的第一个值,b表示向量的最后一个值,n表示向量中元素的个数。
当参数n省略时,系统默认n = 100。
使用logspace函数
调用格式为logspace(a, b, n)。
其中a表示向量的第一个值以10为底的幂,b表示向量的最后一个值以10为底的幂,n表示向量中元素的个数。
当参数n省略时,系统默认n = 50。
从外部数据文件导入
通过菜单File -> Import Data进行。
特殊矩阵
函数 | 作用 |
---|---|
zeros(m, n) | 产生m * n的全0矩阵 |
ones(m, n) | 产生m * n全1矩阵 |
eye(m, n) | 产生m * n单位矩阵 |
rand(m, n) | 产生m * n,以0~1随机矩阵 |
randn(m, n) | 产生m * n,均值为0,方差为1的高斯分布的矩阵 |
randperm(n) | 产生整数1~n的随机排列 |
magic(n) | 产生n阶魔方矩阵 |
魔方矩阵:每行、列、对角线上的元素和相等。
矩阵下标
全下标方式
第i行j列的元素表示为a(i, j)。
在对元素赋值时,如果i > m或j > n,系统不会报错,并对其余扩充部分以0填充。
单下标方式
矩阵的元素在系统中,仍然以线性方式存储。
用a(x)来表示矩阵的元素。
注意:矩阵元素的读取顺序为“列优先”。
单下标方式a(x)和全下标方式a(i, j),其下标换算公式为x = (i - 1) * m + j。
子矩阵
- a(:, n)表示矩阵a的所有行与第n列,即提取矩阵a第n列元素。
- a([m n], [i j])表示矩阵第m行与第n行的第i列与第j列。
- a(m1 : m2, n1 : n2)表示矩阵的第m1行至第m2行的第n1列至第n2列。
- a(m : end, n)表示矩阵a的第m行至最末行的第n列。
- a(:, :)表示一个长列矢量,该矢量的元素按矩阵的列进行排列。
矩阵的赋值
赋值方式 | 使用方法 | 说明 |
---|---|---|
全下标 | a(i, j) = b | 给矩阵a的部分元素赋值 |
单下标 | a(s) = b | b为向量,元素个数对应相等 |
全元素 | a( : ) = b | 元素总数相等,但行列数可以不同 |
矩阵元素的删除
利用方括号([ ])删除矩阵的某行列,或者它的子矩阵。
矩阵的合并
可以使用方括号([ ]),将小的矩阵合并成一个大矩阵。
但要注意行列数是否匹配。
矩阵函数
- transpose(A);矩阵A的转置。可以用单引号(\')代替。
- mean(A);函数返回行向量,各元素对应A中相应列的算术平均值。
- mean(A, dim):当dim = 1时,功能同上;当dim = 2时,返回值为列向量,各元素对应A中相应行的算术平方根。
(全文完)
请发表评论