数据的运算
矩阵相乘A*B
矩阵点乘C = A.*B(A的每个元素与B中对应的元素相乘,Cij = Aij*Bij)
矩阵A.^2,A中每个元素平方
矩阵1./A,将A中每个元素取倒数
矩阵log(A),将A中每个元素进行求对数运算
矩阵exp(A),将A中每个元素,以e为底,以这些元素为幂的运算
矩阵abs(A),将A中每个元素取绝对值
V = [1;2;3],则V+1的结果和V+ones(length(V),1)的结果是一样的
A'表示A的转置
max(a)取向量中最大的元素
扫描二维码关注公众号,回复:
1560941 查看本文章
>> a = [1 2 3 8 7 6]; >> [val,ind] = max(a) val = 8 ind = 4
如果A是矩阵,max(A)就是对每一列求最大值
>> A = [1 2;6 3;4 8] A = 1 2 6 3 4 8 >> [val,ind] = max(A) val = 6 8 ind = 2 3
对a中每个元素与4比较,1表示真,0表示假
>> a = [1 2 3 8 7 6]; >> a > 4 ans = 0 0 0 1 1 1
找出向量中大于4的元素的序列
>> find(a > 4) ans = 4 5 6
魔方阵,所有行,列,对角线加起来都相等的矩阵
>> A = magic(3) A = 8 1 6 3 5 7 4 9 2
r是行号,c是列号
>> [r,c] = find(A>7) r = 1 3 c = 1 2
sum(a) 把 向量a 中所有元素加起来,sum(A,1)将矩阵每列的元素相加,sum(A,2)将矩阵每行的元素相加,sum(sum(A.*eye(n)))将矩阵对角线的元素相加,副对角线元素相加我们先通过fliplr或flipud对单位对角矩阵进行翻转再计算
prod(a) 把 向量a 中所有元素相乘
floor(a) 是向下取整
ceil(a) 表示向上取整
对A和B逐个元素比较取最大值
>> A = rand(3) A = 0.36764 0.27279 0.64418 0.53047 0.97042 0.69824 0.31572 0.19123 0.38600 >> B = rand(3) B = 0.421460 0.690191 0.769081 0.020380 0.662891 0.671919 0.591809 0.902464 0.751770 >> max(A,B) ans = 0.42146 0.69019 0.76908 0.53047 0.97042 0.69824 0.59181 0.90246 0.75177
max(A,[],1) 这样做会得到 每一列的最大值 这里的1表示 取A矩阵第一个维度的最大值
max(A,[],2) 这将得到每一行的最大值
>> max(A,[],1) ans = 0.53047 0.97042 0.69824 >> max(A,[],2) ans = 0.64418 0.97042 0.38600fliplr 矩阵的左右翻转
flipud 矩阵的上下翻转
pinv,矩阵的伪逆,在矩阵不可逆的时候用它
inv,矩阵的逆,在矩阵可逆时用它比用pinv快
参考资料
https://www.coursera.org/learn/machine-learning/