Как добавить другой коэффициент шума к одним и тем же данным и сохранить результат в формате .mat с добавлением имени файла - PullRequest
0 голосов
/ 02 августа 2020

У меня небольшая проблема, у меня есть файл данных с именем inputdat, и я хочу добавить к нему гауссовский шум, варьируя как mu, так и sigma. Наконец, мне нужно сохранить вывод в файле .mat, где файл .mat будет содержать чистые данные (d) и зашумленные данные (dn). Кроме того, мне нужно сохранить вывод каждого цикла в добавочное имя файла: например, мне нужно сначала сохранить l oop вывод в файл test_data1.mat, и он должен содержать чистые данные (d) и зашумленные данные (dn), аналогичные для второго l oop вывод должен быть сохранен в файле test_data2.mat с такими же чистыми данными (d) и зашумленными data (dn) разных mu и sigma. Таким образом, мне нужно сохранить файл для всего l oop run. Как решить эту проблему ... надеюсь на лучшее решение. Спасибо.

Мои входные данные inputdata и script приведены ниже

1.0  3.0  5.0  6.0   7.0
2.0  4.2  7.2  5.2   4.2
9.3  5.2  4.2  4.2   6.1
1.2  1.3  4.2  7.1   1.1 
2.0  4.2  1.7  8.4   4.0


import numpy as np
import scipy.io
def range_with_floats(start, stop, step):
    while stop > start:
        yield start
        start += step
    
for sigma in range_with_floats(5.0,10.0,1.0):
    for mu in range_with_floats(0.0,1.0,0.2):
        inpdata=np.loadtxt("inputdat")
        noise = np.random.normal(mu, sigma, [inpdata.shape[0],inpdata.shape[1]])
        noisydata =  inpdata +  noise
        scipy.io.savemat('test_data*.mat', {'d': inpdata})
        scipy.io.savemat('test_data*.mat', {'dn': noisydata})
...