主要记录的是自己复习过程中遇到的零零散散、貌似很重要但又容易忘的知识点,总的来说比较基础,适合无聊的时候,一边摸鱼一边看。
数据科学中的数学基础
目录
1.标量
>> a=4 % 可以是整数 a = 4 >> b=5.2 % 可以是小数 b = 5.2000 >> x=-1.3 % 可以是负数 x = -1.3000 >> p=pi % 可以是某个 常数 p = 3.1416 >> y=inf % 可以是无穷大 y = Inf >> z=‘M’ % 可以是一个字母 z = ‘M’ >> n=NaN % 可以是非数 (Not a Number) n = NaN >> 3==5 % 可以是逻辑值 ans = logical 0
2.向量
b=linspace(1,10,5) % 以 linspace 在区间 1~10 之间生成 5 个元素的向量 b = 1.0000 3.2500 5.5000 7.7500 10.0000 >> c=logspace(1,5,3) % 以 logspace 在区间 1~5 之间生成包含 3 个对数等分数据的行向 量 c = 10 1000 100000
3.矩阵
tril(A) lower triangular matrix 下三角矩阵
triu(A) upper triangular matrix 上三角矩阵
A=[1,2,3;3,4,5;7,8,9]; %3x3 的矩阵 R=triu(A,-1) % 以第 -1 条对角线分隔提取上三角 R = 1 2 3 3 4 5 0 8 9
diag(A) diagonal 对角线
eye(n) :生成n*n阶单位矩阵 eye(m,n):生成m*n的单位矩阵,对角线元素为 1,其他为0 eye(size(A)):生成一个矩阵A大小相同的单位 矩阵
size(A) 输出A矩阵的行数和列数。如果A多维,则输出每一维的个数(维数的长度)。
size(A,2) 输出A第二维的个数。
size(A,[1,3]) 输出A第一和第三维的个数。
size(A,2:4) 输出二到四维的个数。
以下函数与eye用法类似。
ones() 全1矩阵
zeros() 全0矩阵
rand() 随机矩阵 默认0~1的范围,可以通过n*rand()设置想要的范围。
randn() 生成n*n的服从标准正态分布的随机矩阵
加法:
矩阵和向量相加,即向量和矩阵的每一 行相加。这是一种隐式地复制向量到很 多位置的方式,称为广播。
乘法
注意点乘 .* 和直接 * 的区别
dot(x,y) 标量点积
A = [4 -1 2]; B = [2 -2 -1];计算
A
和B
的点积。C = dot(A,B); C结果为 8,因为C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)
用cross() 表示叉积
使用点积验证
C
是否与A
和B
垂直。dot(C,A)==0 & dot(C,B)==0
范数norm()
向量的1范数为各个元素的绝对值之和 向量的2范数为各个元素的平方和的平方根 向量的负无穷范数为所有元素的绝对值中最小的 向量的正无穷范数为所有元素的绝对值中最大的 向量的p范数为p次方和的p次方根
矩阵的1-范数(列和范数):矩阵的每一列上的元素绝对值先求和,再从中取最大值。(列和最大)norm(A,1); 矩阵的2-范数(欧几里德范数,谱范数):矩阵