MATLAB矩阵处理

欢迎访问我的新博客: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) = bb为向量,元素个数对应相等
全元素a( : ) = b元素总数相等,但行列数可以不同

矩阵元素的删除

利用方括号([ ])删除矩阵的某行列,或者它的子矩阵。

矩阵的合并

可以使用方括号([ ]),将小的矩阵合并成一个大矩阵。

但要注意行列数是否匹配。

矩阵函数

  • transpose(A);矩阵A的转置。可以用单引号(\')代替。
  • mean(A);函数返回行向量,各元素对应A中相应列的算术平均值。
  • mean(A, dim):当dim = 1时,功能同上;当dim = 2时,返回值为列向量,各元素对应A中相应行的算术平方根。

(全文完)