文章目录

  • 解耦原子范数最小化
    • 解耦原子范数最小化(DANM)的产生
    • 转化为SDP问题
  • SDP问题转化的证明
  • 参考文献和博客

解耦原子范数最小化

解耦原子范数最小化(DANM)的产生

首先,定义一个矩阵形式(与其对应的是向量形式)的原子集:
A={ax(θ)ayH(θ):θ∈[−π2,π2],ax(θ)∈CN×1,ay(θ)∈CM×1}\mathcal{A}=\{\boldsymbol{a}_x(\theta)\boldsymbol{a}_y^H(\theta):\theta\in[-\frac{\pi}{2},\frac{\pi}{2}],\boldsymbol{a}_x(\theta)\in\mathbb{C}^{N\times1},\boldsymbol{a}_y(\theta)\in\mathbb{C}^{M\times1}\} A={ax​(θ)ayH​(θ):θ∈[−2π​,2π​],ax​(θ)∈CN×1,ay​(θ)∈CM×1}
在DOA估计问题中,ax(θ),ay(θ)\boldsymbol{a}_x(\theta),\boldsymbol{a}_y(\theta)ax​(θ),ay​(θ)分别表示两条阵列的方向向量,Z∈CN×M\boldsymbol{Z}\in\mathbb{C}^{N\times M}Z∈CN×M往往表示两个阵列的互协方差矩阵。那么,具体的解耦原子范数为:
∥Z∥A=inf⁡{∑k∣sk∣:Z=∑kskax(θk)ayH(θk),ax(θk)ayH(θk)∈A}\|\boldsymbol{Z}\|_\mathcal{A}=\inf\{\sum_{k}|s_k|:\boldsymbol{Z}=\sum_{k}s_k\boldsymbol{a}_x(\theta_k)\boldsymbol{a}_y^H(\theta_k),\boldsymbol{a}_x(\theta_k)\boldsymbol{a}_y^H(\theta_k)\in\mathcal{A}\} ∥Z∥A​=inf{k∑​∣sk​∣:Z=k∑​sk​ax​(θk​)ayH​(θk​),ax​(θk​)ayH​(θk​)∈A}
与l1l_1l1​原子范数最小化(ANM)类似,解耦原子范数最小化问题表述为:
min⁡Z∥Z∥As.t∥Z−Z^∥≤η\min_{\boldsymbol{Z}}\|\boldsymbol{Z}\|_{\mathcal{A}} \\ s.t \quad \|\boldsymbol{Z}-\boldsymbol{\hat{Z}}\| \leq \eta Zmin​∥Z∥A​s.t∥Z−Z^∥≤η
该问题可以转换为半正定规划(SDP)问题。

转化为SDP问题

证明内容在下一节,转化后的SDP问题表述为:

转化为该SDP问题的过程中,有以下前提(达到其中一个就可),是不可忽略的。
Δx=min⁡i≠j∣fx,i−fx,j∣≥1⌊(N−1)/4⌋Δy=min⁡i≠j∣fy,i−fy,j∣≥1⌊(M−1)/4⌋\Delta_x = \min_{i\ne j}|f_{x,i}-f_{x,j}| \geq \frac{1}{\lfloor(N-1)/4\rfloor} \\ \Delta_y = \min_{i\ne j}|f_{y,i}-f_{y,j}| \geq \frac{1}{\lfloor(M-1)/4\rfloor} Δx​=i​=jmin​∣fx,i​−fx,j​∣≥⌊(N−1)/4⌋1​Δy​=i​=jmin​∣fy,i​−fy,j​∣≥⌊(M−1)/4⌋1​
在上式中,第k个信号在x阵列和y阵列上相邻的阵元间产生的相位差分别为:2πfx,k2\pi f_{x,k}2πfx,k​和2πfx,k2\pi f_{x,k}2πfx,k​,其方向向量亦可表述为:ax(fk)\boldsymbol{a}_x(f_k)ax​(fk​)和ay(fk)\boldsymbol{a}_y(f_k)ay​(fk​)。T(z)\mathcal{T}(\boldsymbol{z})T(z)表示以向量z\boldsymbol{z}z产生一个同尺寸的Hermitian-Toeplitz矩阵。

SDP问题转化的证明

在忽略变量Z\boldsymbol{Z}Z的情况下,定义目标函数为:
g(z1,z2)=12MN(Tr(T(z1))+Tr(T(z2)))g(\boldsymbol{z}_1,\boldsymbol{z}_2)=\frac{1}{2\sqrt{MN}}\left(Tr(\mathcal{T}(\boldsymbol{z}_1))+Tr(\mathcal{T}(\boldsymbol{z}_2))\right) g(z1​,z2​)=2MN​1​(Tr(T(z1​))+Tr(T(z2​)))
其中,
(z1,z2)∈SZ+={(z1,z2):[T(z2)ZHZT(z1)]⪰0}(\boldsymbol{z}_1,\boldsymbol{z}_2)\in \mathcal{S}_{\boldsymbol{Z}}^{+}=\left\{(\boldsymbol{z}_1,\boldsymbol{z}_2): \begin{bmatrix} \mathcal{T}(\boldsymbol{z}_2) & \boldsymbol{Z}^H \\ \boldsymbol{Z} & \mathcal{T}(\boldsymbol{z}_1) \end{bmatrix} \succeq 0 \right\} (z1​,z2​)∈SZ+​={(z1​,z2​):[T(z2​)Z​ZHT(z1​)​]⪰0}
所以,要证明以上优化问题的等效,只需证明以下等式即可。
g∗=min⁡(z1,z2)∈SZ+g(z1,z2)=∥Z∥Ag^{*}=\min_{(\boldsymbol{z}_1,\boldsymbol{z}_2)\in \mathcal{S}_{\boldsymbol{Z}}^{+}}g(\boldsymbol{z}_1,\boldsymbol{z}_2)=\|\boldsymbol{Z}\|_{\mathcal{A}} g∗=(z1​,z2​)∈SZ+​min​g(z1​,z2​)=∥Z∥A​
先证明g∗≤∥Z∥Ag^{*}\leq \|\boldsymbol{Z}\|_{\mathcal{A}}g∗≤∥Z∥A​成立。

引理1:如果数据矩阵Z∈CN×M\boldsymbol{Z}\in\mathbb{C}^{N\times M}Z∈CN×M在fff上足够可分,即在原子集A\mathcal{A}A中,有足够多的原子ax(f)ayH(f)\boldsymbol{a}_x(f)\boldsymbol{a}^H_y(f)ax​(f)ayH​(f)。那么,当数据矩阵Z\boldsymbol{Z}Z确定时,它就有唯一的稀疏原子分解。在此情况下,得到了:
∥Z∥A=∑k∣sk∣\|\boldsymbol{Z}\|_{\mathcal{A}} = \sum_{k}|s_k| ∥Z∥A​=k∑​∣sk​∣

在引理1的条件下,直接写出数据矩阵Z\boldsymbol{Z}Z的唯一原子分解为:
Z=∑kskax(fk)ayH(fk)\boldsymbol{Z}=\sum_{k}s_k\boldsymbol{a}_x(f_k)\boldsymbol{a}^H_y(f_k) Z=k∑​sk​ax​(fk​)ayH​(fk​)
直接构造矩阵T(z~1)\mathcal{T}(\boldsymbol{\tilde{z}}_1)T(z~1​)和T(z~2)\mathcal{T}(\boldsymbol{\tilde{z}}_2)T(z~2​):
T(z~1)=∑kMN∣sk∣ax(fk)axH(fk)T(z~2)=∑kNM∣sk∣ay(fk)ayH(fk)\mathcal{T}(\boldsymbol{\tilde{z}}_1) = \sum_{k}{\sqrt{\frac{M}{N}}|s_k|\boldsymbol{a}_x(f_k)\boldsymbol{a}^H_x(f_k)} \\ \mathcal{T}(\boldsymbol{\tilde{z}}_2) = \sum_{k}{\sqrt{\frac{N}{M}}|s_k|\boldsymbol{a}_y(f_k)\boldsymbol{a}^H_y(f_k)} T(z~1​)=k∑​NM​​∣sk​∣ax​(fk​)axH​(fk​)T(z~2​)=k∑​MN​​∣sk​∣ay​(fk​)ayH​(fk​)
显然,它们都是Hermitian-Toeplitz矩阵,分别将Z,T(z~1),T(z~2)\boldsymbol{Z},\mathcal{T}(\boldsymbol{\tilde{z}}_1),\mathcal{T}(\boldsymbol{\tilde{z}}_2)Z,T(z~1​),T(z~2​)代入约束条件中,得到:
[T(z~2)ZHZT(z~1)]=∑k∣sk∣MN[Nay(fk)sign(sk)Max(fk)][Nay(fk)sign(sk)Max(fk)]H⪰0\begin{bmatrix} \mathcal{T}(\boldsymbol{\tilde{z}}_2) & \boldsymbol{Z}^H \\ \boldsymbol{Z} & \mathcal{T}(\boldsymbol{\tilde{z}}_1) \end{bmatrix} = \sum_{k}\frac{|s_k|}{\sqrt{MN}}\begin{bmatrix} \sqrt{N}\boldsymbol{a}_y(f_k) \\ sign(s_k)\sqrt{M}\boldsymbol{a}_x(f_k)\end{bmatrix} {\begin{bmatrix} \sqrt{N}\boldsymbol{a}_y(f_k) \\ sign(s_k)\sqrt{M}\boldsymbol{a}_x(f_k)\end{bmatrix}}^H \succeq 0 [T(z~2​)Z​ZHT(z~1​)​]=k∑​MN​∣sk​∣​[N​ay​(fk​)sign(sk​)M​ax​(fk​)​][N​ay​(fk​)sign(sk​)M​ax​(fk​)​]H⪰0
上式成立,说明向量z~1\boldsymbol{\tilde{z}}_1z~1​和z~2\boldsymbol{\tilde{z}}_2z~2​是g(z1,z2)g(\boldsymbol{z}_1,\boldsymbol{z}_2)g(z1​,z2​)的一组可行解,代入目标函数中,得到:
g(z~1,z~2)=12MN(Tr(T(z~1))+Tr(T(z~2)))=∑k∣sk∣g(\boldsymbol{\tilde{z}}_1,\boldsymbol{\tilde{z}}_2)=\frac{1}{2\sqrt{MN}}\left(Tr(\mathcal{T}(\boldsymbol{\tilde{z}}_1))+Tr(\mathcal{T}(\boldsymbol{\tilde{z}}_2))\right)=\sum_{k}|s_k| g(z~1​,z~2​)=2MN​1​(Tr(T(z~1​))+Tr(T(z~2​)))=k∑​∣sk​∣
巧了,∑k∣sk∣=∥Z∥A\sum_{k}|s_k|=\|\boldsymbol{Z}\|_{\mathcal{A}}∑k​∣sk​∣=∥Z∥A​刚好成立,ggg的可行解对应着∥Z∥A\|\boldsymbol{Z}\|_{\mathcal{A}}∥Z∥A​,那么,ggg的最优解g∗g^*g∗必然小于可行解,即:
g∗≤g(z~1,z~2)=∥Z∥Ag^*\leq g(\boldsymbol{\tilde{z}}_1,\boldsymbol{\tilde{z}}_2) = \|\boldsymbol{Z}\|_{\mathcal{A}} g∗≤g(z~1​,z~2​)=∥Z∥A​
得证。

接下来,再证明g∗≥∥Z∥Ag^{*}\geq \|\boldsymbol{Z}\|_{\mathcal{A}}g∗≥∥Z∥A​成立。
此时,引入一个新的原子集,叫做“多测量向量(MMV)原子集”,它有如下的定义:
Ax={ax(f)eMH:∀f∈[0,1],∀eM∈CM×1,∥eM∥=1}\mathcal{A_x}=\{\boldsymbol{a}_x(f)\boldsymbol{e}^H_M:\forall f\in [0,1],\forall \boldsymbol{e}_M\in\mathbb{C}^{M\times 1},\|\boldsymbol{e}_M\|=1 \} Ax​={ax​(f)eMH​:∀f∈[0,1],∀eM​∈CM×1,∥eM​∥=1}
对于MMV问题,它有以下有用的结论:

引理2:对于任意的一个能够在MMV原子集上线性可分的数据矩阵Z∈CN×M\boldsymbol{Z}\in \mathbb{C}^{N\times M}Z∈CN×M,它在Ax\mathcal{A_x}Ax​上的原子范数可由以下SDP问题算出:
∥Z∥Ax=min⁡V,z{12N(Tr(V)+Tr(T(z)))}s.t[VZHZT(z)]⪰0\|\boldsymbol{Z}\|_{\mathcal{A_x}}=\min_{\boldsymbol{V},\boldsymbol{z}}\left\{\frac{1}{2\sqrt{N}}(Tr(\boldsymbol{V})+Tr(\mathcal{T}(\boldsymbol{z}))) \right\} \quad s.t \begin{bmatrix} \boldsymbol{V} & \boldsymbol{Z}^H \\ \boldsymbol{Z} & \mathcal{T}(\boldsymbol{z}) \end{bmatrix} \succeq 0 ∥Z∥Ax​​=V,zmin​{2N​1​(Tr(V)+Tr(T(z)))}s.t[VZ​ZHT(z)​]⪰0
其中,V∈CM×M\boldsymbol{V}\in \mathbb{C}^{M\times M}V∈CM×M是一个Hermitian矩阵,T(z)∈CN×N\mathcal{T}(\boldsymbol{z})\in \mathbb{C}^{N\times N}T(z)∈CN×N是一个Toeplitz矩阵。

引理3:如果Z=∑kskax(fk)eMH\boldsymbol{Z}=\sum_{k}s_k\boldsymbol{a}_x(f_k)\boldsymbol{e}^H_MZ=∑k​sk​ax​(fk​)eMH​,ax(fk)eMH\boldsymbol{a}_x(f_k)\boldsymbol{e}^H_Max​(fk​)eMH​是MMV集合中的原子,满足以下的频率可分条件:
Δx=min⁡i≠j∣fx,i−fx,j∣≥1⌊(N−1)/4⌋\Delta_x = \min_{i\ne j}|f_{x,i}-f_{x,j}|\geq \frac{1}{\lfloor(N-1)/4\rfloor} Δx​=i​=jmin​∣fx,i​−fx,j​∣≥⌊(N−1)/4⌋1​
那么,就可以保证:
∥Z∥Ax=∑k∣sk∣\|\boldsymbol{Z}\|_{\mathcal{A_x}}=\sum_{k}|s_k| ∥Z∥Ax​​=k∑​∣sk​∣
这一点也正好对应了转换成SDP问题的前提条件。

有了这两个引理做铺垫,我们就可以完成证明。
不失一般性的,我们考虑x轴满足前提条件:
Δx=min⁡i≠j∣fx,i−fx,j∣≥1⌊(N−1)/4⌋\Delta_x = \min_{i\ne j}|f_{x,i}-f_{x,j}|\geq \frac{1}{\lfloor(N-1)/4\rfloor} Δx​=i​=jmin​∣fx,i​−fx,j​∣≥⌊(N−1)/4⌋1​
根据引理1,在解耦原子范数集A\mathcal{A}A下,它有唯一的分解为:
Z=∑kskax(fk)ayH(fk)=∑ksk∥ayH(fk)∥2ax(fk)ayH(fk)∥ayH(fk)∥2=∑k(Msk)ax(fk)ayH(fk)∥ayH(fk)∥2\begin{aligned} \boldsymbol{Z}=\sum_{k}s_k\boldsymbol{a}_x(f_k)\boldsymbol{a}^H_y(f_k)&=\sum_{k}s_k\|\boldsymbol{a}^H_y(f_k)\|_2\boldsymbol{a}_x(f_k)\frac{\boldsymbol{a}^H_y(f_k)}{\|\boldsymbol{a}^H_y(f_k)\|_2} \\ &= \sum_{k}(\sqrt{M}s_k)\boldsymbol{a}_x(f_k)\frac{\boldsymbol{a}^H_y(f_k)}{\|\boldsymbol{a}^H_y(f_k)\|_2} \end{aligned} Z=k∑​sk​ax​(fk​)ayH​(fk​)​=k∑​sk​∥ayH​(fk​)∥2​ax​(fk​)∥ayH​(fk​)∥2​ayH​(fk​)​=k∑​(M​sk​)ax​(fk​)∥ayH​(fk​)∥2​ayH​(fk​)​​
显然,ax(fk)ayH(fk)∥ayH(fk)∥2∈Ax\frac{\boldsymbol{a}_x(f_k)\boldsymbol{a}^H_y(f_k)}{\|\boldsymbol{a}^H_y(f_k)\|_2} \in \mathcal{A_x}∥ayH​(fk​)∥2​ax​(fk​)ayH​(fk​)​∈Ax​。另外,由于引理3,所以可以将其MMV原子范数表示为:
∥Z∥Ax=M∑k∣sk∣\|\boldsymbol{Z}\|_{\mathcal{A_x}}=\sqrt{M}\sum_{k}|s_k| ∥Z∥Ax​​=M​k∑​∣sk​∣
同时,
∥Z∥A=∑k∣sk∣\|\boldsymbol{Z}\|_{\mathcal{A}}=\sum_{k}|s_k| ∥Z∥A​=k∑​∣sk​∣
因此,数据矩阵Z\boldsymbol{Z}Z的两种原子范数的联系就建立起来了:
∥Z∥A=1M∥Z∥Ax\|\boldsymbol{Z}\|_{\mathcal{A}}=\frac{1}{\sqrt{M}}\|\boldsymbol{Z}\|_{\mathcal{A_x}} ∥Z∥A​=M​1​∥Z∥Ax​​
由于引理2,那么,取V=T(z2)\boldsymbol{V}=\mathcal{T}(\boldsymbol{z_2})V=T(z2​),z=z1\boldsymbol{z}=\boldsymbol{z_1}z=z1​,
∥Z∥A=min⁡z1,z2{12MN(Tr(T(z1))+Tr(T(z2)))}=min⁡z1,z2g(z1,z2)≤{g(z~1,z~2):(z~1,z~2)∈SZ+}\begin{aligned} \|\boldsymbol{Z}\|_{\mathcal{A}}=&\min_{\boldsymbol{z_1},\boldsymbol{z_2}}\left\{\frac{1}{2\sqrt{MN}}(Tr(\mathcal{T}(\boldsymbol{z_1}))+Tr(\mathcal{T}(\boldsymbol{z_2}))) \right\}=\min_{\boldsymbol{z_1},\boldsymbol{z_2}}{g(\boldsymbol{z_1},\boldsymbol{z_2})} \\ \leq & \{g(\boldsymbol{\tilde{z}}_1,\boldsymbol{\tilde{z}}_2):(\boldsymbol{\tilde{z}}_1,\boldsymbol{\tilde{z}}_2) \in \mathcal{S}_{\boldsymbol{Z}}^{+}\} \end{aligned} ∥Z∥A​=≤​z1​,z2​min​{2MN​1​(Tr(T(z1​))+Tr(T(z2​)))}=z1​,z2​min​g(z1​,z2​){g(z~1​,z~2​):(z~1​,z~2​)∈SZ+​}​
上式最后一项是可行解对应的目标集,由于g∗g^*g∗也是可行解对应的目标之一,所以,
∥Z∥A≤g∗\|\boldsymbol{Z}\|_{\mathcal{A}} \leq g^* ∥Z∥A​≤g∗
证毕。

min⁡(z1,z2)∈SZ+g(z1,z2)=∥Z∥A\min_{(\boldsymbol{z}_1,\boldsymbol{z}_2)\in \mathcal{S}_{\boldsymbol{Z}}^{+}}g(\boldsymbol{z}_1,\boldsymbol{z}_2)=\|\boldsymbol{Z}\|_{\mathcal{A}}(z1​,z2​)∈SZ+​min​g(z1​,z2​)=∥Z∥A​
结论得证。因而,当数据矩阵Z\boldsymbol{Z}Z不确定时,关于它的优化问题等价为:
min⁡Zmin⁡(z1,z2)∈SZ+g(z1,z2)=min⁡Z∥Z∥A=min⁡z1,z2,Zg(z1,z2)s.t[T(z2)ZHZT(z1)]⪰0\min_{\boldsymbol{Z}}\min_{(\boldsymbol{z}_1,\boldsymbol{z}_2)\in \mathcal{S}_{\boldsymbol{Z}}^{+}}g(\boldsymbol{z}_1,\boldsymbol{z}_2)=\min_{\boldsymbol{Z}}\|\boldsymbol{Z}\|_{\mathcal{A}}=\min_{\boldsymbol{z}_1,\boldsymbol{z}_2,\boldsymbol{Z}}g(\boldsymbol{z}_1,\boldsymbol{z}_2) \quad s.t \begin{bmatrix} \mathcal{T}(\boldsymbol{z}_2) & \boldsymbol{Z}^H \\ \boldsymbol{Z} & \mathcal{T}(\boldsymbol{z}_1) \end{bmatrix} \succeq 0 Zmin​(z1​,z2​)∈SZ+​min​g(z1​,z2​)=Zmin​∥Z∥A​=z1​,z2​,Zmin​g(z1​,z2​)s.t[T(z2​)Z​ZHT(z1​)​]⪰0
等价问题得证。

参考文献和博客

下载参考文献
提取码:6666
博客:原子范数最小化参考博客

解耦原子范数最小化(Decoupled Atomic Norm Minimization)相关推荐

  1. 压缩感知的尽头: 原子范数最小化

    文章目录 前言 问题建模 Toeplitz 矩阵的范德蒙德分解 DOA估计的一般框架 ℓ0\ell_0ℓ0​-原子范数 ℓ0\ell_0ℓ0​-原子范数 与 范德蒙德分解 原子范数 多维原子范数 证明 ...

  2. l20范数最小化求解系数方程_贪婪组稀疏方法(Greedy group sparsity)

    l20范数最小化求解系数方程_贪婪组稀疏方法(Greedy group sparsity) 本文章部分参考Fast group sparse classification l20范数最小化求解系数方程 ...

  3. 稀疏优化L1范数最小化问题求解之基追踪准则(Basis Pursuit)——原理及其Python实现

    文章目录 一.前言 二.问题重述 三.构造 ℓ1\ell_1ℓ1​ 范数 四.ℓ1\ell_1ℓ1​ 范数最小化问题转换为线性规划问题 五.基于linprog的基追踪Python代码 六.运行测试 七 ...

  4. 三维网格去噪算法(L0范数最小化,包含二维图像去噪)

    参考文章(技术来源):Mesh denoising via L0 minimization 上面参考文章提出了一种基于L0范数最小化的三角网格去噪算法.该思想由二维图像平滑引申而来,所以先从基于L0范 ...

  5. l1范数最小化快速算法【文献阅读】

    1:解决的问题模型如下:   或者约束条件可以适当的松弛,即为如下模型:    当然约束条件取范数,数据获取的比较准确,结果逼近的效果更好,防止过拟合.如果取 范数,则是获取的数据,受到污染比较严重. ...

  6. l1范数最小化快速算法

    1:解决的问题模型如下: 或者约束条件可以适当的松弛,即为如下模型: 当然约束条件取

  7. 图像处理-基于图像梯度L0范数最小化(L0smooth)的保护边缘平滑滤波

    算法程序备注: (1)下面是对一幅自然图像进行处理的结果: 可以看到图像有非常明显的变化,图像分成了一块一块,这是图像平滑后的结果,因为保护了边界,因此明显的边界仍然存在,但是不可避免的细节部分被磨平 ...

  8. 原子范数 Atomic norm最小化: 简单的Matlab例程

    前言 基于 压缩感知的尽头: 原子范数最小化 中的原子范数最小化算法, 笔者做了一些matlab的仿真, 作为简单的例程,希望帮助大家进一步理解算法和自定义的拓展. 由于凸问题的求解需要使用 CVX, ...

  9. 范数规则化(一):L0、L1与L2范数

    目录 0 范数 1  L0 范数 2  L1 范数 2.1 L1 2.2 L1正则化和特征选择 2.3 拉普拉斯先验与L1正则化 2.3.1 拉普拉斯分布 2.3.2 拉普拉斯先验 3 L2 范数 3 ...

  10. CFR虚拟遗憾最小化算法基础

    虚拟遗憾最小化算法[Counterfactual Regret Minimization,CFR] 基础理论 博弈问题分类 博弈论基本概念与符号 算法框图 参考文献 基础理论 博弈问题分类 按照效用值 ...

最新文章

  1. Spring @Resource、@Autowired、@Qualifier区别
  2. 在servlet中读取初始化参数和上下文参数的方法getServletContext()和getInitParameter()
  3. OKGAN:线上训练GAN的方法
  4. 记录一次K8s-Flannel插件的坑
  5. linux安装sz rz_超级好用的文件传输命令rz与sz
  6. C++11标准库 - array 1
  7. 重新启动postgre报错时,解决方案 ( 由备份文件占用空间太大造成 ) (linux 命令 df -h 查看磁盘空间)
  8. random.uniform()用法
  9. C#线程 访问资源同步简介
  10. 2020UNCTF-MISC-网络深处1
  11. Android模仿新浪微博(启动界面登陆界面)
  12. 计算机辅助教学应用于哪些方面,计算机辅助教学在英语教学中的运用
  13. 拍照解数独之识别数独图片
  14. 生硬的论文,非得写什么架构设计
  15. 使用重力感应传感器和Arduino的手机控制机器人车
  16. 面临“反对沉没成本”效应,海尔、格力、海信、美的等家电厂商的智能音箱还有必要做吗?
  17. 内网渗透-端口转发隧道技术
  18. 如何使用 Nmcli 通过 Linux 终端连接到 Wi-Fi
  19. 常用的Linux快捷键 [译]
  20. 身份证过期了,银行卡上的身份证信息是不是都要去银行更新?

热门文章

  1. 三合一收款码生成源码(非调用接口)
  2. vector扩容时以2倍或1.5倍扩容的原因
  3. html求相关系数,相关系数,确定系数(R^2)计算公式与在线计算器_三贝计算网_23bei.com...
  4. 技术考官如何面试应聘者的非技术素质
  5. Android基本UI控件(一)
  6. 银河麒麟系统10服务器安装教程,麒麟系统下安装win10的详细教程
  7. 能测试快充真假的软件,ChargerLAB测试工具使用技巧:一键检测苹果数据线真伪...
  8. Excel如何用IF函数进行数据筛选
  9. mysql怎么把两个表格的数据合并成一行_mysql中将多行数据合并成一行数据
  10. PageHelper.startPage的作用