深度学习之Octave使用三

数据的运算

矩阵相乘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.38600
fliplr 矩阵的左右翻转

flipud 矩阵的上下翻转

pinv,矩阵的伪逆,在矩阵不可逆的时候用它

inv,矩阵的逆,在矩阵可逆时用它比用pinv快

参考资料

https://www.coursera.org/learn/machine-learning/


猜你喜欢

转载自blog.csdn.net/junjun150013652/article/details/80642971