【问题标题】:Create Random sparse signal with numpy用 numpy 创建随机稀疏信号
【发布时间】:2020-01-30 20:59:29
【问题描述】:

在 Matlab 中,我使用以下代码来简单地创建一个随机稀疏信号。

N = 100; % Total length of sparse signal;
n = 20; % number of non-zero elements;
x = zeros(N,1);
r = -5 + (5+5)*rand(n,1); %random signal amplitude between -5 and 5
k = randi([0 100],1,n); % locations of the sparse singal
x(k) = r; % The sparse signal

使用上面的 Matlab 代码,我得到了我想要的长度为 100 的稀疏信号 x,在 k 给定的位置有非零元素。有没有一种简单的方法可以在 Python 中做到这一点, numpy ?实际上,我正在学习 Python 并尝试转换上述代码。基本上,我可以转换以上所有在 Python 中非常相似的内容,但我似乎无法转换行

x(k) = r; % The sparse signal

如何在 Python 中做到这一点?

【问题讨论】:

    标签: python arrays numpy signals sparse-matrix


    【解决方案1】:

    我已经为上述问题找到了自己的答案。现在,我将上面的 Matlab sn-p 翻译如下就足够了:

    def createSparseSignal(N,n):
        sig = np.zeros(N)
        r = 5*np.random.rand(n,1)
        k = np.random.randint(1,100,n)
    
        a = 1
        for j in range(n):
            i = a*j + 1
            sig[i*k[j]] = r[j]
            a = j-j
    
        return sig
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2017-03-31
      • 2016-09-20
      • 1970-01-01
      相关资源
      最近更新 更多