3.矩阵常用操作

news2024/11/26 16:45:48

文章目录

  • 线性代数的常用操作
    • 1.向量的内积
    • 2.向量的外积
    • 3.正交向量
    • 4.正交向量组
    • 5.向量空间的基与维数
    • 6.正交矩阵
    • 7.反对称矩阵
    • 8.齐次坐标与齐次变换矩阵
    • 9.相似矩阵
    • 10.相似对角化
    • 11.矩阵的特征分解
    • 12.奇异值分解SVD
      • 12.1 SVD求齐次矩阵方程的最小二乘解
    • 13.满秩分解
    • 14.Pseudo-Inverse Matrix
      • reference


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


线性代数的常用操作

1.向量的内积

  • 定义

    向量的内积即点乘,其定义如下:

    向量 a ⃗ = [ a 1 , a 2 , . . . , a n ] \vec{a} = [a_1,a_2,...,a_n] a =[a1,a2,...,an]
    向量 b ⃗ = [ b 1 , b 2 , . . . , b n ] \vec{b} = [b_1,b_2,...,b_n] b =[b1,b2,...,bn]

    a ⃗ \vec{a} a b ⃗ \vec{b} b 的内积公式表示为:

    a ⃗ ∙ b ⃗ = a 1 b 1 + a 2 b 2 + . . . + a n b n = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s θ \vec{a}\bullet\vec{b}=a_1b_1+a_2b_2+...+a_nb_n=|\vec{a}||\vec{b}|cos\theta a b =a1b1+a2b2+...+anbn=a ∣∣b cosθ
  • 几何意义

    两个向量之间的夹角,向量 a ⃗ \vec{a} a 在向量 b ⃗ \vec{b} b 上的投影。

2.向量的外积

  • 定义

    a ⃗ × b ⃗ = [ i ⃗ j ⃗ k ⃗ a 1 b 1 c 1 a 2 b 2 c 2 ] = [ b 1 c 2 − b 2 c 1 a 2 c 1 − a 1 c 2 a 1 b 2 − a 2 b 1 ] = [ 0 − c 1 b 1 c 1 0 − a 1 − b 1 a 1 0 ] b ⃗ = a ⃗ ∧ b ⃗ \vec{a} \times \vec{b} = \begin{bmatrix} \vec{i} & \vec{j} & \vec{k}\\ a_1 & b_1 & c_1\\ a_2 & b_2 & c_2 \end{bmatrix}=\begin{bmatrix} b_1c_2-b_2c_1\\ a_2c_1-a_1c_2\\ a_1b_2-a_2b_1 \end{bmatrix}=\begin{bmatrix} 0 & -c_1 & b_1\\ c_1 & 0 & -a_1\\ -b_1 & a_1 &0 \end{bmatrix}\vec{b}=\vec{a}^\wedge \vec{b} a ×b = i a1a2j b1b2k c1c2 = b1c2b2c1a2c1a1c2a1b2a2b1 = 0c1b1c10a1b1a10 b =a b

    式中 ∧ \wedge 符号表示把向量 a ⃗ \vec{a} a 写成一个反对称矩阵。即:

    a ⃗ ∧ = [ 0 − c 1 b 1 c 1 0 − a 1 − b 1 a 1 0 ] \vec{a}^\wedge = \begin{bmatrix} 0 & -c_1 & b_1\\ c_1 & 0 & -a_1\\ -b_1 & a_1 &0 \end{bmatrix} a = 0c1b1c10a1b1a10
  • 几何意义

    外积的结果是一个向量,该向量的模等于向量 a ⃗ \vec{a} a 和向量 b ⃗ \vec{b} b 围成的平行四边形的面积

3.正交向量

向量的内积等于两个向量长度乘上向量之间的夹角,当两个向量之间夹角的余弦值等于0时,在二维空间,我们称之为垂直,在高维空间中我们称之为正交

因此正交向量是内积为零的向量。

a ⃗ ⋅ b ⃗ = 0 \vec{a} \cdot \vec{b} = 0 a b =0

4.正交向量组

正交向量组是指一组两两正交且非零的向量。

如果 n n n维的向量组: a 1 ⃗ , a 2 ⃗ , a 3 ⃗ , . . . , a r ⃗ \vec{a_1},\vec{a_2},\vec{a_3},...,\vec{a_r} a1 ,a2 ,a3 ,...,ar 两两正交,那么,它们彼此之间一定线性无关。即不存在一组不为0系数 λ \lambda λ满足

λ 1 a 1 ⃗ + λ 2 a 2 ⃗ + . . . + λ r a r ⃗ = 0 \lambda_1\vec{a_1}+\lambda_2\vec{a_2}+...+\lambda_r\vec{a_r}=0 λ1a1 +λ2a2 +...+λrar =0

证明很简单,只需要左右同时乘以一个 a 1 ⃗ T \vec{a_1}^T a1 T,发现只有 λ 1 = 0 \lambda_1=0 λ1=0时上式才成立。


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


5.向量空间的基与维数

向量空间的定义,向量空间 R n \bold{R}^n Rn由所有的n维向量 v ⃗ \vec{v} v 组成,向量中的每个元素都是实数。

V \bold{V} V为向量空间,如果 r r r个向量 a 1 ⃗ , a 2 ⃗ , a 3 ⃗ , . . . , a r ⃗ ∈ V \vec{a_1},\vec{a_2},\vec{a_3},...,\vec{a_r}\in\bold{V} a1 ,a2 ,a3 ,...,ar V,且满足:

  • a 1 ⃗ , a 2 ⃗ , a 3 ⃗ , . . . , a r ⃗ \vec{a_1},\vec{a_2},\vec{a_3},...,\vec{a_r} a1 ,a2 ,a3 ,...,ar 线性无关;
  • V \bold{V} V中任一向量都可由 a 1 ⃗ , a 2 ⃗ , a 3 ⃗ , . . . , a r ⃗ \vec{a_1},\vec{a_2},\vec{a_3},...,\vec{a_r} a1 ,a2 ,a3 ,...,ar 线性表示,也就是可由它们生成整个空间。

那么,向量组 a 1 ⃗ , a 2 ⃗ , a 3 ⃗ , . . . , a r ⃗ \vec{a_1},\vec{a_2},\vec{a_3},...,\vec{a_r} a1 ,a2 ,a3 ,...,ar 就称为向量空间 V \bold{V} V的一组基, r r r称为向量空间 V \bold{V} V的维数。

对于给定向量空间,虽然会有很多组基,但空间中的任一组基都有相同的向量的数量。

基向量可能不同,但基向量的个数一定相同。

把正交向量组的概念和基的概念融合,设向量组 a 1 ⃗ , a 2 ⃗ , a 3 ⃗ , . . . , a r ⃗ \vec{a_1},\vec{a_2},\vec{a_3},...,\vec{a_r} a1 ,a2 ,a3 ,...,ar 是向量空间 V \bold{V} V的一个基,若它们之间彼此正交,那么就称它们是一组规范正交基

对于一个向量 a ⃗ \vec{a} a ,可以很方便地求出它在规范正交基 a i ⃗ \vec{a_i} ai 下各个维度的坐标 λ i \lambda_i λi

λ i = a i ⃗ T a ⃗ \lambda_i=\vec{a_i}^T\vec{a} λi=ai Ta

即对于向量 a ⃗ \vec{a} a ,在规范正交基下某一个维度的坐标,等于它和整个维度的正交基向量的内积。

若已知向量空间 V \bold{V} V中的一组基 a 1 ⃗ , a 2 ⃗ , a 3 ⃗ , . . . , a r ⃗ \vec{a_1},\vec{a_2},\vec{a_3},...,\vec{a_r} a1 ,a2 ,a3 ,...,ar ,如何求 V \bold{V} V的规范正交基呢?

可以使用施密特算法对基进行规范正交化,该算法公式可写成:

b 1 = a 1 b 2 = a 2 − [ b 1 , a 2 ] [ b 1 , b 1 ] b 1 . . . b r = a r − [ b 1 , a 2 ] [ b 1 , b 1 ] b 1 − [ b 2 , a 2 ] [ b 2 , b 2 ] b 2 − . . . − [ b r − 1 , a r − 1 ] [ b r − 1 , b r − 1 ] b r − 1 \begin{align}b_1 &= a_1 \\ b_2 &= a_2 - \frac{[b_1,a_2]}{[b_1,b_1]}b_1\\ ...\\ b_r&=a_r - \frac{[b_1,a_2]}{[b_1,b_1]}b_1 - \frac{[b_2,a_2]}{[b_2,b_2]}b_2- ...-\frac{[b_{r-1},a_{r-1}]}{[b_{r-1},b_{r-1}]}b_{r-1} \end{align} b1b2...br=a1=a2[b1,b1][b1,a2]b1=ar[b1,b1][b1,a2]b1[b2,b2][b2,a2]b2...[br1,br1][br1,ar1]br1

上式中 [ b 1 , a 2 ] [b_1,a_2] [b1,a2]表示两个向量的内积。

b ⃗ \vec{b} b 单位归一化后即可求得规范正交基。

6.正交矩阵

正交矩阵矩阵是转置等于逆的方阵,即满足

A T A = E A^TA = E ATA=E

三个性质,

  • A − 1 = A T A^{-1}=A^T A1=AT,且都是正交矩阵, d e t ( A ) = ± 1 det(A)=\pm 1 det(A)=±1
  • AB都是正交矩阵,并且它们阶数一样,那么AB也是正交矩阵
  • A是正交矩阵,向量y经过A变换之后行列式保持不变

7.反对称矩阵

反对称矩阵是一个方阵,其转置矩阵和自身的加法逆元相等,即 A T = − A A^T=-A AT=A

( A + B ) ∨ = A ∨ + B ∨ (A+B)^{\vee}=A^{\vee}+B^{\vee} (A+B)=A+B

8.齐次坐标与齐次变换矩阵

简而言之,齐次坐标就是用N+1维来代表N维坐标。最后新增的一维值为10(无穷远处的点)。
齐次(homogeneous)从字面上解释是“次数相等”的意思。使用齐次坐标的方便之处在于,对笛卡尔点齐次坐标的任何标量的乘积仍然表示同一个笛卡尔点。齐次坐标有规模不变性。因此被称为齐次坐标。如齐次坐标 ( 1 , 2 , 1 ) / ( 2 , 4 , 2 ) / ( 3 , 6 , 3 ) (1,2,1)/(2,4,2)/(3,6,3) (1,2,1)/(2,4,2)/(3,6,3)都表示同一个笛卡尔点 ( 1 , 2 ) (1,2) (1,2)。对齐次坐标进行变换的矩阵称为齐次变换矩阵。

9.相似矩阵

A和B都是n×n的方阵,若存在可逆矩阵M,使得 B = M − 1 A M B=M^{-1}AM B=M1AM,则称A和B互为相似矩阵,记作A~B。相似矩阵具有同样的特征值。

如果A有n个线性无关的特征向量,则A可以对角化为 A = S Λ S − 1 A=SΛS^{-1} A=SΛS1,相当于 S − 1 A S = Λ S^{-1}AS=Λ S1AS=Λ,A和其特征值矩阵Λ互为相似矩阵,这里的M=S,是特征向量矩阵。实际上A的相似矩阵有很多,我们可以用任意可逆矩阵M代替S,从而求得其他的相似矩阵,Λ是众多相似矩阵中最简洁的一个。

对于 B = M − 1 A M B=M^{-1}AM B=M1AM,设A,B和C是任意同阶方阵,则有:

(1)反身性:A~A

(2)对称性:若AB,则BA

(3)传递性:若AB,BC,则A~C

(4)若A~B,则二者的特征值相同、行列式相同、秩相同、迹相同。

(5)若A~B,且A可逆,则B也可逆, A − 1 ∼ B − 1 A^{-1}\sim B^{-1} A1B1

10.相似对角化

如果一个方阵 A A A相似于对角矩阵,也就是说存在一个可逆矩阵 P P P使得 P − 1 A P P^{-1}AP P1AP是对角矩阵,则 A A A就被称为可以相似对角化的。

矩阵
A = [ 1 − 2 − 2 1 ] A=\begin{bmatrix} 1 & -2\\ -2 &1 \end{bmatrix} A=[1221]
的相似对角化为
[ − 1 1 − 1 − 1 ] − 1 [ 1 − 2 − 2 1 ] [ − 1 1 − 1 − 1 ] = [ − 1 0 0 3 ] \begin{bmatrix} -1 & 1\\ -1 &-1 \end{bmatrix}^{-1}\begin{bmatrix} 1 & -2\\ -2 &1 \end{bmatrix}\begin{bmatrix} -1 & 1\\ -1 &-1 \end{bmatrix}=\begin{bmatrix} -1 & 0\\ 0 &3 \end{bmatrix} [1111]1[1221][1111]=[1003]
使用numpy计算 A A A的特征值和特征向量可知:

from numpy import linalg as LA
import numpy as np
mat = np.array([[1, -2],[-2, 1]])
W, V = LA.eig(mat)
print(W,V)
"""output
[ 3. -1.] 

[[ 0.70710678  0.70710678]
 [-0.70710678  0.70710678]]
"""

对角矩阵中的元素是 A A A的特征值。

相似对角化的好处:

  • 1)相似对角化使得同一个线性变换表达方式变的简单

图片引用自https://zhuanlan.zhihu.com/p/138285148

  • 2)通过相似对角化(实际为坐标轴旋转)可以消去二次型中的交叉项

图片引用自https://zhuanlan.zhihu.com/p/138285148

11.矩阵的特征分解

对于 m × m m\times m m×m的矩阵 A A A的特征值分解为 A = U Λ U − 1 A = U\Lambda U^{-1} A=UΛU1, U U U的每一列都是特征向量, Λ \Lambda Λ对角线上的元素是从大到小排列的特征值。

当矩阵 A A A是一个对称矩阵时,则存在一个对称对角化分解,即 A = Q Λ Q T A=Q\Lambda Q^T A=QΛQT, Q Q Q的每一列都是相互正交的特征向量,且是单位向量, Λ \Lambda Λ对角线上的元素是从大到小排列的特征值。将矩阵 Q Q Q记作 Q = ( q ⃗ 1 , q ⃗ 2 , . . . , q ⃗ m ) Q=(\vec{q}_1,\vec{q}_2,...,\vec{q}_m) Q=(q 1,q 2,...,q m),则矩阵A可以写为:
A = λ 1 q ⃗ 1 q ⃗ 1 T + λ 2 q ⃗ 2 q ⃗ 2 T + . . . + λ m q ⃗ m q ⃗ m T A = \lambda_1\vec{q}_1\vec{q}_1^T + \lambda_2\vec{q}_2\vec{q}_2^T + ... + \lambda_m\vec{q}_m\vec{q}_m^T A=λ1q 1q 1T+λ2q 2q 2T+...+λmq mq mT

12.奇异值分解SVD

当给定一个大小为 m × n m\times n m×n的矩阵A,虽然矩阵A不一定是方阵,但大小为 m × m m\times m m×m A A T AA^T AAT n × n n\times n n×n A T A A^TA ATA却是对称矩阵,若 A A T = P Λ 1 P T AA^T=P\Lambda_1P^T AAT=PΛ1PT A T A = Q Λ 2 Q T A^TA=Q\Lambda_2Q^T ATA=QΛ2QT,则矩阵A的奇异值分解为:
A = P Σ Q T A = P\Sigma Q^T A=PΣQT
P的列向量称为矩阵A的左奇异向量,Q中的列向量称为矩阵A的右奇异向量,矩阵 Λ 1 \Lambda_1 Λ1大小为 m × m m\times m m×m,矩阵 Λ 2 \Lambda_2 Λ2大小为 n × n n\times n n×n,两个矩阵对角线上的非零元素相同,矩阵 Σ \Sigma Σ的大小为 m × n m\times n m×n,位于对角线上的元素称为奇异值。若矩阵 Λ 1 \Lambda_1 Λ1对角线的非零元素为 λ 1 , λ 2 , . . . , λ k \lambda_1,\lambda_2,...,\lambda_k λ1,λ2,...,λk,这些特征值也都是非负的,且 Λ 2 \Lambda_2 Λ2 Λ 1 \Lambda_1 Λ1对角线上的非零元素相同,则矩阵 Σ \Sigma Σ对角线上的元素为:

σ 1 = λ 1 , σ 2 = λ 2 , . . . , σ k = λ k , \sigma_1 = \sqrt{\lambda_1},\sigma_2 = \sqrt{\lambda_2},...,\sigma_k = \sqrt{\lambda_k}, σ1=λ1 ,σ2=λ2 ,...,σk=λk ,

在奇异值分解中,较大的奇异值会决定原矩阵的“主要特征”,可以使用奇异值分解的低秩逼近来截取原矩阵中的主要成分。numpy.linalg中提供了 . s v d .svd .svd函数可用来计算矩阵的奇异值分解:

from numpy import linalg as LA
import numpy as np
mat = np.array([[4, 4],[-3, 3]])
u,s,v = LA.svd(mat)
print(u)
print(s)
print(v)
"""output
[[-1.00000000e+00  0.00000000e+00]
 [ 3.70074342e-18  1.00000000e+00]]

[5.65685425 4.24264069]

[[-0.70710678 -0.70710678]
 [-0.70710678  0.70710678]]
"""

12.1 SVD求齐次矩阵方程的最小二乘解





13.满秩分解

取自《矩阵论》p179

设A为 m × n m\times n m×n且秩为 r > 0 r\gt0 r>0的复矩阵,记为 A ∈ C r m × n A\in\mathbb{C}_r^{m\times n} ACrm×n,如果存在矩阵 B ∈ C r m × r B\in \mathbb{C}^{m\times r}_r BCrm×r C ∈ r × n r C\in\mathbb{r\times n}_r Cr×nr,使得 A = B C A=BC A=BC,则称 B , C B,C B,C为矩阵A的最大秩分解,满秩分解。

A ∈ C r m × n A\in\mathbb{C}_r^{m\times n} ACrm×n,则一定存在 B ∈ C r m × r B\in \mathbb{C}_r^{m\times r} BCrm×r C ∈ C r r × n C\in \mathbb{C}_r^{r\times n} CCrr×n,使得 A = B C A=BC A=BC

例如求矩阵A的满秩分解:

A = [ 1 4 − 1 5 6 2 0 0 4 6 − 1 2 − 4 − 4 − 19 1 − 2 − 1 − 1 − 6 ] A=\begin{bmatrix} 1 & 4 & -1 & 5 & 6\\ 2 & 0 & 0 & 4 & 6\\ -1 & 2 & -4 & -4 & -19\\ 1 & -2 & -1 & -1 & -6 \end{bmatrix} A= 121140221041544166196

A进行初等行变换化为行标准形为:

A ≃ [ 1 0 0 2 3 0 1 0 1 2 0 0 1 1 5 0 0 0 0 0 ] A\simeq\begin{bmatrix} 1 & 0 & 0 & 2 & 3\\ 0 & 1 & 0 & 1 & 2\\ 0 & 0 & 1 & 1 & 5\\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} A 10000100001021103250

取A的前三列组成矩阵

B = [ 1 4 − 1 2 0 0 − 1 2 − 4 1 − 2 − 1 ] B = \begin{bmatrix} 1 & 4 & -1\\ 2 & 0 & 0\\ -1 & 2 & -4\\ 1 & -2 & -1 \end{bmatrix} B= 121140221041
再取A的行标准形的前三个非零行,组成矩阵
C = [ 1 0 0 2 3 0 1 0 1 2 0 0 1 1 5 ] C=\begin{bmatrix} 1 & 0 & 0 & 2 & 3\\ 0 & 1 & 0 & 1 & 2\\ 0 & 0 & 1 & 1 & 5\\ \end{bmatrix} C= 100010001211325

可以求得 A = B C A=BC A=BC

14.Pseudo-Inverse Matrix

1920年摩尔提出广义逆的概念,1955年以4个方程的形式给出了广义逆矩阵的定义。
定义:设 A ∈ R m × n A\in\mathbb{R}^{m\times n} ARm×n,若存在 n × m n\times m n×m阶矩阵G,同时满足:
A G A = A G A G = G ( A G ) T = A G ( G A ) T = G A AGA=A \\ GAG=G \\ {(AG)}^T=AG \\ {(GA)^T}=GA AGA=AGAG=G(AG)T=AG(GA)T=GA
则称G为A的加号逆,或伪逆,或摩尔彭斯逆(Moore–Penrose pseudoinverse),通常记为 A + A^+ A+

对于任意 A ∈ R m × n A\in \mathbb{R}^{m\times n} ARm×n,其伪逆存在且唯一。

伪逆的求法:

  • (1)如果A为满秩方阵,则 A + = A − 1 A^+=A^{-1} A+=A1
  • (2)如果 A = d i a g ( d 1 , d 2 , . . . , d n ) A=diag(d_1,d_2,...,d_n) A=diag(d1,d2,...,dn), d i ∈ R ( i = 1 , 2 , . . , n ) d_i\in\mathbb{R}(i=1,2,..,n) diR(i=1,2,..,n),则
    A + = d i a g ( d 1 + , d 2 + , . . . d n + ) , 其中 , d i + = { 0 , d i = 0 时 1 d i , d i ≠ 0 时 A^+ = diag(d_1^+,d_2^+,...d_n^+),\\其中,d_i^+=\left\{\begin{matrix} 0,d_i=0时 \\ \frac{1}{d_i},d_i\neq0时 \end{matrix}\right. A+=diag(d1+,d2+,...dn+),其中,di+={0,di=0di1,di=0
  • (3)如果A为行满秩矩阵,
    A + = A R − 1 = A T ( A A T ) − 1 A^+=A_R^{-1}=A^T(AA^T)^{-1} A+=AR1=AT(AAT)1
  • (4)如果A为列满秩矩阵,
    A + = A L − 1 = ( A T A ) − 1 A T A^+ = A_L^{-1} = (A^TA)^{-1}A^T A+=AL1=(ATA)1AT
  • (5)如果A为降秩的 m × n m\times n m×n矩阵,可用满秩分解求 A + A^+ A+,即将A满秩分解为 A = B C A=BC A=BC,其中B列满秩,C行满秩,且
    r a n k ( B ) = r a n k ( C ) = r = r a n k ( A ) < m i n m , n , rank(B) = rank(C) = r = rank(A) \lt min{m,n}, rank(B)=rank(C)=r=rank(A)<minm,n,
    则有:
    A + = C R − 1 B L − 1 = C + B + A^+ = C_R^{-1}B_L^{-1} = C^{+}B^+ A+=CR1BL1=C+B+
    这里:
    B L − 1 = ( B T B ) − 1 B T , C R − 1 = C T ( C C T ) − 1 B_L^{-1} = (B^TB)^{-1}B^T,C_R^{-1}=C^T(CC^T)^{-1} BL1=(BTB)1BT,CR1=CT(CCT)1
from numpy import linalg as LA
import numpy as np
A = np.array([[1,1,0,1,0],[0,1,1,1,1],[1,0,1,1,0]])
LA.pinv(A)
"""output
array([[ 0.33333333, -0.33333333,  0.33333333],
       [ 0.5       ,  0.25      , -0.5       ],
       [-0.5       ,  0.25      ,  0.5       ],
       [ 0.16666667,  0.08333333,  0.16666667],
       [-0.16666667,  0.41666667, -0.16666667]])
"""

欢迎访问个人网络日志🌹🌹知行空间🌹🌹


reference

  • 1.https://zhuanlan.zhihu.com/p/50066691
  • 2.https://zhuanlan.zhihu.com/p/75060237
  • 3.https://zhuanlan.zhihu.com/p/103636446

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/784794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门【 控制语句和逻辑思维、选择结构(条件判断结构)双分支选择结构、多分支选择结构、循环结构、while循环 】(七)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

LeetCode·每日一题·2208. 将数组和减半的最少操作次数·优先队列

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/minimum-operations-to-halve-array-sum/solutions/2357852/you-xian-dui-lie-zhu-shi-chao-ji-xiang-x-805n/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系作…

如何打开工业相机(海康)与halcon方式打开

使用海康相机&#xff0c;下载对应的客户端软件 地址&#xff1a;https://www.hikrobotics.com/cn/machinevision/service/download 界面如下&#xff1a; 使用 halcon 读取相机&#xff0c;需要将对应的动态链接库dll文件放入halcon的安装目录中&#xff0c;如下&#xff0c;…

Linux中的chmod命令使用方法总结

chmod命令用于更改文件或目录的权限chmod命令的基本语法如下&#xff1a;范例研究&#xff1a;rwx权限对于文件和目录的作用 chmod命令用于更改文件或目录的权限 它允许用户控制谁可以读取、写入和执行文件。 权限由三个组成部分组成&#xff0c;分别是所有者权限、所属组权限…

企业邮箱选购:选择最适合您的方案

作为一名公司员工&#xff0c;你需要一个专业且令人难忘的公司电子邮件地址。毕竟无论何时你和你的联系人交流&#xff0c;你都代表着你公司的品牌。但是你应该选择什么样的公司电子邮件地址呢? 首先&#xff0c;考虑使用你公司的域名作为你的公司电子邮件地址。这是最专业的方…

【C++入门到精通】C++入门—缺省参数、函数重载

目录 前言 一、缺省参数 1.缺省参数的概念 2.缺省参数分类 ⭕全缺省参数 ⭕半缺省参数 二、函数重载 1.函数重载的概念 2.函数重载类型 &#x1f534;参数类型不同 &#x1f534;参数个数不同 &#x1f534;参数类型顺序不同 C支持函数重载的原理--名字修饰(name Mangli…

基于Android Studio编辑器上开发的一款看点新闻App

完整资料进入【数字空间】查看——baidu搜索"writebug" 1 系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态&#xff0c;增长知识&#xff0c;增广见闻&#xff0c;顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 …

【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块4

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

FPGA学习——实现任意倍分频器(奇数/偶数倍分频器均可实现)

文章目录 一、分频器二、Verilog实现任意倍分频器2.1、Verilog源码2.2、仿真文件 三、仿真波形图 一、分频器 在FPGA&#xff08;可编程逻辑门阵列&#xff09;中&#xff0c;分频器是一种用于将时钟信号的频率降低的电路或模块。它可以根据输入的时钟信号生成一个较低频率的输…

Vivado 差分输出引脚配置

diff_out输出如下所示 在引脚配置时&#xff0c;如下图所示&#xff0c;只能设置一个Pos Diff的引脚&#xff0c;此时设置完Pos Diff的引脚后&#xff0c;Neg Diff默认被绑定在相邻的引脚 我们可以打开上图中Package Pins页面&#xff0c;发现这一对引脚设置完毕

基于Java+Swing+mysql人力资源管理系统_员工信息管理系统

基于JavaSwingmysql人力资源管理系统/员工信息管理系统 一、系统介绍二、效果展示1、登陆2、查看个人信息--员工3、更新个人信息--员工4、管理员主页&#xff08;增删改查&#xff09; 三、其他系统实现四、获取源码 一、系统介绍 系统主要分为两个角色&#xff1a; 员工&…

【LeetCode-中等】剑指 Offer 67. 把字符串转换成整数(详解)

题目 写一个函数 StrToInt&#xff0c;实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时&#…

【ArcGIS Pro微课1000例】0029:绘制全球海洋波纹荡漾效果图

本文讲解ArcGIS Pro3.0中,基于全球航洋面状矢量数据,绘制震撼全球海洋波纹荡漾效果图。 文章目录 一、效果预览二、效果制作三、参数详解一、效果预览 绘制好的海水波纹荡漾效果图如下: 下面我们来学习绘制过程。 二、效果制作 波纹荡漾效果需要在全局或者局部场景中制作…

7月最新大模型排名!3700道保密试题、20个大模型参与评测|SuperCLUE

7月最新大模型排名&#xff01;3700道保密试题、20个大模型参与评测&#xff5c;SuperCLUE CLUE中文语言理解测评基准 中文通用大模型综合性评测基准SuperCLUE 2023年7月榜单 7月25日&#xff0c;SuperCLUE发布大模型7月榜单。 SuperCLUE: A Benchmark for Foundation Mo…

【TypeScript】类型推断与类型别名的使用方式。

什么是类型推断&#xff1f; 在 TypeScript 中&#xff0c; 如果声明变量时&#xff0c;没有明确的指定类型&#xff0c;那么 TypeScript 会依照类型推论&#xff08;Type Inference&#xff09;的规则推断出一个类型。 以下代码虽然没有明确指定类型&#xff0c;但是会在编译的…

web安全漏洞总结

目录 &#xff08;一&#xff09;网络安全常见漏洞 1、sql注入漏洞 漏洞解释与形成原因 漏洞分类&#xff1a; 漏洞存在常见地方&#xff1a; 漏洞利用: 漏洞防御: 攻击流量特征 绕开waf拦截的常用方法 2、文件上传漏洞 漏洞解释与形成原因&#xff1a; 漏洞利用 漏…

20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤

20230720在ubuntu22.04系统下载解密合并ts切片的步骤 2023/7/20 23:06 1、视频源头&#xff0c;打开时效肯定有时间限制的&#xff01; 【并且不同时间打开&#xff0c;下载链接/参数会有区别的&#xff01;以前的链接就会失效/出错了&#xff01;】 https://app1ce7glfm1187.…

深“扒”云原生高性能分布式文件系统JuiceFS

JuiceFS 是一款面向云原生设计的高性能分布式文件系统&#xff0c;在 Apache 2.0 开源协议下发布。提供完备的 POSIX 兼容性&#xff0c;可将几乎所有对象存储接入本地作为海量本地磁盘使用&#xff0c;亦可同时在跨平台、跨地区的不同主机上挂载读写。 JuiceFS 简介 JuiceFS…

【100天精通python】Day13:面向对象编程_多态和封装,实战模拟电影院的自动售票机选票页面

目录 1 多态&#xff08;Polymorphism&#xff09; 2 封装&#xff08;Encapsulation&#xff09; 3 总结 4 实战&#xff1a;模拟电影院的自动售票机选票页面 在 Python 中&#xff0c;多态和封装是面向对象编程的两个重要概念。 1 多态&#xff08;Polymorphism&#xf…

GoogleLeNet Inception V1

文章目录 Inception V1Inception Modulenative versionInception module with dimensionality reduction1 * 1网络的降维说明 多个Softmax的输出整体结构 GoogleLeNet主要是把深度扩充到了22层&#xff0c;能增加网络深度而不用担心训练精度和梯度消失问题。 总共是提出了4个版…