还有一个月就美赛了,本系列文章适用于完全没有任何matlab基础,但是有别的编程语言基础的人看,我会结合自己的理解,有的放矢的讲,不会掺杂很多废话,各位读者轻喷~
2.1matlab运算符
Matlab运算符分五类:数学、关系,逻辑、位、集合运算符
2.1.1 数学运算符
其主要功能是进行各种数学运算,按其优先级别依次为:
1. 转置(.’)、共轭转置(‘)、幂次(.^)、矩阵幂次(^)
2. 正、负号(+/-)
3. 乘法(.*)、矩阵乘法(*)、元素左右除(.\,./)、矩阵左右除(\,/)
4. 加减法(+,-)
5. 冒号(:)
在同一优先级中,运算自左至右完成,对运算顺序不确定时,最好以“()”实现强制运算顺序
对于矩阵,右除A/B,相当于X*B=A的解矩阵,左除A\B,相当于A*X=B的解矩阵
2.1.2 关系运算符
有六种:==,~=,>,>=,<,<=,关系运算符总是以矩阵内元素对元素做运算,若满足关系,则返回1,不满足则返回0
2.1.3 逻辑运算符
有三种:&(与),|(或),~(非)
相关命令还有:all(),any()
当所有向量元素为“真”,all返回1,而当任意元素为“真”,any即返回1
示例:
图 2-1 “与”运算
图2-2 “all”,“any”运算
2.1.4 位运算符
对非负整数进行位对位的逻辑运算,主要函数如下:
bitand():位对位AND,bitor():位对位OR,bitxor():位对位XOR,bitset():设定某位,bitget():取得某位,bitcmp():位对位NOT,bitshift():位移(左移)
2.1.5 集合运算符
仅限于向量运算,此时matlab将向量视为集合来进行各种集合运算,常用命令如下:
Union():并集,intersect():交集,setdiff():差集,setxor():异或,unique():最小等效集合,ismember():元素是否属于集合
2.2 数值精度
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位有效数
2.3 常用keyword
clc:清空命令行窗口
clear:清空工作区所有变量,clear x:清空工作区中x变量
who:显示工作区所有变量
Whos:显示工作区所有变量的详细信息
三、矩阵
3.1 矩阵输入
行矩阵(Row vector):>> a = [1 2 3 4]
列矩阵(Column vector):>> b = [1;2;3;4]
3.2 索引向量(矩阵)
>>A(8) = 9,编号是按照一列一列数下来,在向量A中,“21”对应的编号是4
>>A([1 3 5]) = 1 31 17
>>A([1 3;1 3]) =
>>A(3,2) = 2,以逗号隔开的两个数字,前面表示行,后面表示列
>>A([1 3],[1 3]) =
,前面的[1 3]表示,第一行和第三行,后面的[1 3]表示第一列和第三列
3.2.1 替换矩阵值
方法:A() = [],等号左边是索引,首先索引到需要替换的位置,然后用右边的值去赋值(替换)
如果想要删掉某一行,格式:A(x,:) = []
如果想要删掉某一列,格式:A(:,x) = []
3.2.2 “:”操作
如果要创建一个非常长的矩阵,例如从1到1000,手动输入非常麻烦,这时就可以利用“:”操作符
格式:A = [first:tolerance:end],从first开始,end为结束,tolerance为公差创造一个等差向量(tolerance默认值为1)
“:”操作符还有另一种用法,如果想取矩阵的某一行或者某一列,只需要A(x,:)或者A(:,x),x表示数值
3.2.3 矩阵合并操作
格式:F = [A B]或F = [A;B](这两种做法产生的结果是不一样的)
3.3 矩阵运算
3.3.1 矩阵与矩阵运算
Y1 = A+B =
Y2 = A*B =
(满足矩阵乘法)
Y3 = A.*B =
(两矩阵对应位置上的元素相乘)
Y4 = A/B = A*inv(B)(两矩阵相除等于左边的矩阵乘以右边矩阵的逆矩阵)
Y5 = A./B(两矩阵对应位置上的元素相除)
3.3.2 矩阵与实数运算
X1 = A+a =
(将矩阵各位置上的值分别加上该实数)
X2 = A/a = A./a(将矩阵各位置上的值分别除以该实数)
X3 = A^a = A^2 = A*A(满足矩阵与矩阵相乘的法则)
X4 = A.^a = A.^2 =
(矩阵各位置上的元素进行a次方的运算)
X5 = A’ =
(矩阵转置)
3.4 特殊矩阵
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之间的随机值
3.5 常用矩阵函数
max(A) = 7 5 9(max函数的作用是求出矩阵每一列中的最大值)
max(max(A)) = 9(max外面嵌套一个max的作用是求出矩阵所有元素中的最大值)
min(A)= 0 0 3(min函数的作用是求出矩阵每一列中的最小值)
min(min(A)) = 0(min外面嵌套一个min的作用是求出矩阵所有元素中的最小值)
sum(A) = 8 7 18(sun函数的作用是计算矩阵每一列的和)
sum(sum(A)) = 33(sum外面嵌套一个sum的作用是求出矩阵内所有元素的和)
mean(A)(mean函数的作用是计算矩阵每一列的平均数)
mean(mean(A))(mean外面嵌套一个mean的作用是求出矩阵内所有元素的平均数)
sort(A) =
(sort函数的作用是将矩阵每一列元素从小到大进行排序)
sortrows(A) =
(sortrows函数的作用是按照第一列中数值从小到大的顺序把每一行进行排序)
size(A) = 3 3(size函数的作用就是计算出矩阵有多少行多少列)
length(A) = 3(length函数的作用是求出行数或者列数当中的较大值)
find(A==6) =8(find函数的作用是求出满足条件的值在矩阵当中的位置)