MENU

Matlab—基本操作与矩阵输入

November 21, 2018 • Read: 245 • matlab

写在前面

还有一个月就美赛了,本系列文章适用于完全没有任何 matlab 基础,但是有别的编程语言基础的人看,我会结合自己的理解,有的放矢的讲,不会掺杂很多废话,各位读者轻喷~

matlab 运算符

Matlab 运算符分五类:数学、关系,逻辑、位、集合运算符

数学运算符

其主要功能是进行各种数学运算,按其优先级别依次为:

  1. 转置.’、共轭转置'、幂次.^、矩阵幂次^
  2. 正、负号+-
  3. 乘法.*、矩阵乘法*、元素左右除.\./、矩阵左右除\/
  4. 加减法+-
  5. 冒号:

在同一优先级中,运算自左至右完成,对运算顺序不确定时,最好以“()”实现强制运算顺序

对于矩阵,右除 A/B,相当于 X*B=A 的解矩阵左除 AB,相当于 A*X=B 的解矩阵

关系运算符

有六种关系运算符:==~=>>=<<=。关系运算符总是以矩阵内元素对元素做运算,若满足关系,则返回 1,不满足则返回 0

逻辑运算符

有三种:&(与),|(或),~(非)

相关命令还有:all()any()。当所有向量元素为 “真”,all 返回 1,而当任意元素为 “真”,any 即返回 1

示例:

位运算符

对非负整数进行位对位的逻辑运算,主要函数如下:

  • bitand():位对位 AND
  • bitor():位对位 OR
  • bitxor():位对位异或
  • bitset():设定某位
  • bitget():取得某位
  • bitcmp():位对位取反
  • bitshift():位移(左移)

集合运算符

仅限于向量运算,此时 matlab 将向量视为集合来进行各种集合运算,常用命令如下:

  • Union():并集
  • intersect():交集
  • setdiff():差集
  • setxor():异或
  • unique():最小等效集合
  • ismember():元素是否属于集合

数值精度

  • format short:默认格式,小数点后保留 4 位
  • format long:有效数字 16 位
  • format long e:有效数字 16 位加 3 位指数
  • format short e:有效数字 5 位加 3 位指数
  • format bank:保留两位小数位
  • format +:只给出正负
  • format rational:以分数的形式表示
  • format hex:以 16 进制数表示
  • format long g:15 位有效数
  • format short g:5 位有效数

常用Keyword

  • clc:清空命令行窗口
  • clear:清空工作区所有变量,clear
  • x:清空工作区中 x 变量
  • who:显示工作区所有变量
  • Whos:显示工作区所有变量的详细信息

矩阵

矩阵输入

行矩阵(Row vector)a = [1 2 3 4]

列矩阵(Column vector):b = [1;2;3;4]

索引向量(矩阵)

$$
A =
\left[
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{matrix}
\right]
$$
A(8) = 9,编号是按照一列一列数下来

A([1 3 5]) = 1 31 17

A(3,2) = 2,以逗号隔开的两个数字,前面表示行,后面表示列

替换矩阵值

A(x) = b,等号左边是索引,首先索引到需要替换的位置,然后用右边的值去赋值(替换)

如果想要删掉某一行,格式:A(x,:) = []

如果想要删掉某一列,格式:A(:,x) = []

:操作

如果要创建一个非常长的矩阵,例如从 1 到 1000,手动输入非常麻烦,这时就可以利用: 操作符

格式:A = [first:tolerance:end],从 first 开始,end 为结束,tolerance为公差创造一个等差向量(tolerance 默认值为 1)

:操作符还有另一种用法,如果想取矩阵的某一行或者某一列,只需要A(x,:)或者A(:,x)

矩阵合并操作

格式:F = [A B]F = [A;B](这两种做法产生的结果是不一样的)

特殊矩阵

  • eye(n):n×n 的单位矩阵
  • zeros(n1,n2):n1×n2 的矩阵,矩阵内元素全部为 0
  • ones(n1,n2):n1×n2 的矩阵,矩阵内元素全部为 1
  • diag([x1 x2 x3]):主对角线为 x1,x2,x3 的矩阵
  • linspace(a,b,n):生成一个 1×n 的矩阵,第一个元素值为 a,最后一个元素值为 b,共有 n 个数据
  • rand(m,n):生成一个 m×n 阶的矩阵,矩阵内的值是 0-1 之间的随机值

常用矩阵函数

  • max(A):求出矩阵每一列中的最大值
  • max(max(A)):求出矩阵所有元素中的最大值
  • min(A):求出矩阵每一列中的最小值
  • min(min(A)):求出矩阵所有元素中的最小值
  • sum(A):计算矩阵每一列的和
  • sum(sum(A)):求出矩阵内所有元素的和
  • mean(A):计算矩阵每一列的平均数
  • mean(mean(A)):求出矩阵内所有元素的平均数
  • sort(A):将矩阵每一列元素从小到大进行排序
  • sortrows(A):按照第一列中数值从小到大的顺序把每一行进行排序
  • size(A):计算出矩阵有多少行多少列
  • length(A):求出行数或者列数当中的较大值
  • find(A,x)求出满足条件的值x在矩阵当中的位置
Archives Tip
QR Code for this page
Tipping QR Code