20,矩阵的运算
- 调用函数
abs sin round
sum(A,1)每一列和
sum(A,2)每一行和
sum(sum(A))总和
sum(A(:)) 总和
sum(A,'all' )总和
sum(A,1,'omitnan')忽略nan
sum和prod完全一样
cumsum(A,1)计算每一列的累计和
cumusum(A,2)计算每一行的累计和
diff计算差分,当前元素与下个元素的差
diff(w) 计算一阶差分
diff(w,2)计算二阶差分
diff(w,3)计算三阶差分
diff(A,n,dim)dim = 1 按行上计算,=2,按列上计算n阶差分
diff 不支持omitnan
mode 众数,自动会忽略nan,在使用时不能使用omitnan
[M,F] = mode(A) %M出现的众数,F 出现的次数
C返回的元包数组,[0]表示只有一个元素,{4x1 doubule} 有4x1的列向量
var 方差
总体方差vs 样本方差
向量
var(A,w) w = 0 样本方差,w = 1,总体方差
矩阵
var(A,w,dim)
dim = 1 列方差
dim = 2 行方差
std 标准差
std(a)
min (A,B)求两个元素对应位置的最小值,组成一个新的矩阵
A B 可以具有不一样的大小,只要保证兼容的大小
向量min(A)
如果 A 里面有复数,比较的是模长
矩阵min(A,[],dim)dim = 1 每一列最小值,dim = 2 按列最小值
如果不加[] 每个元素都和dim比较大小
返回向量最小值和所在索引
[min_x,ind]=min(x)
自动忽略缺失值
返回最小值和索引的不能用在矩阵中
max和min函数的用法相同
mink 求前k个最小值
maxk
21, 算数运算
+ 兼容模式,两个矩阵大小不同,内部自动拓展成相同大小进行相加
-和加法一样,对应位置相减
*矩阵的乘法,1)线性代数中的第一个列和第二个行一样,用A*B 2)第二种点乘 A.*B
/右除
\左除
./ A./B 点除
^乘方 A^3
- ^0.5 开跟号
- ^-1 取倒数
A^-1 逆矩阵
A' 转置
22,关系运算符
== 等于
~=不等于
>
<
>=
<=
nan 和nan 相互不相等
inf 和inf 是相等的
23,浮点数判断相等,使用容差fangshi
tol = 1e-12 %定义个容差范围
A= 0.5-0.4-0.1
abs(A)<tol %取绝对值
24,逻辑运算
逻辑与 and &
and(1,1) 1&1
逻辑或 or |
or(1,0) 1|0
逻辑非 not ~
not(1) ~1
异或 xor
xor(1,0) %返回1
logic(A) 转换成逻辑0,1 组成的矩阵
true(2) 生成2x2的逻辑数组,元素都为1
如果存在nan 逻辑运算会报错
25,&& 和 ||
只能用在标量的元素,只有一个元素
26,提取符合逻辑值里面的元素组成新的数组A(L)
%随机生成100名同学的成绩0-100分
%统计大于60分的人数
%取平均值
A = randi([0,100],1,200)
L =logical((A>=60)&(A<=80))
B = A(L)
aver = mean(B)
20名同学,每个同学被抽中0.25,找出可能抽中的学生的序号
p = 0.25
r=rand(1,20)
L=logical(r<=p)
A= 1:20
B=A(L)
27,逻辑值的修改与删除
v(v<50) = 10%小于50 的值都被赋值成10,10改成[] 表示删除
v可以是向量或者矩阵,矩阵删除元素后,剩余元素被修改成行向量
28,缺失值寻找的函数
isnan(A)
%将缺失值赋值成其他的向量里面的平均值
A(isnan(A))= mean(A(~isnan(A)))
28,all any find
all 全为非0 返回1,有一个0,返回0
any 类似|,只要有个非0,返回1
find(X) 返回下标,X可以是向量,返回每个非0元素的索引,如果是矩阵,X会先被转成线性向量。在返回各自索引
find(X,n) find(X,n,first) 只返回前n个元素的索引
find(X,n,last) 只返回最后n个元素的索引
[row,col] = find(X) 返回非零元素的行列
[row,col,n] = find(X) 返回n组成新的非0 向量
find (all(A>=85,2))