Mu1 = np.zeros((106,))
时间: 2023-11-16 16:06:08 浏览: 55
Mu1 = np.zeros((106,))是一个创建一个长度为106的一维数组,数组中的所有元素都是0的numpy数组。这个数组可以用来存储一些数值或者向量。
相关问题:
--相关问题--:
1. 什么是numpy数组?
2. 如何在numpy中创建一个二维数组?
3. numpy中的一些常用函数有哪些
相关问题
itr = len(xn) en = np.zeros((itr, 1)) yn = np.zeros((itr,1)) W = np.zeros((M, itr)) for k in range(M, itr): if k==M: x = xn[k-1::-1] else: x = xn[k-1:k-M-1:-1] try: y = np.dot(W[:, k - 2], x) print(y) except: pass en[k-1] = dn[k-1] - y W[:, k-1] = W[:, k - 2] + 2 * mu * en[k-1] * x每句代码的意思
这段代码的功能是实现最小均方(LMS)自适应滤波算法,其中 xn 表示输入序列,dn 表示期望输出序列,mu 表示步长参数,M 表示滤波器的阶数。
- itr = len(xn):确定输入序列的长度,即迭代次数。
- en = np.zeros((itr, 1)):初始化误差序列,长度为 itr。
- yn = np.zeros((itr,1)):初始化滤波器的输出序列,长度为 itr。
- W = np.zeros((M, itr)):初始化权值矩阵,大小为 M 行,itr 列。
- for k in range(M, itr):从第 M 个样本开始进行滤波。
- if k==M: x = xn[k-1::-1]:如果 k=M,将 x 赋值为 xn 前 M 个样本的反向序列。
- else: x = xn[k-1:k-M-1:-1]:否则将 x 赋值为 xn 中第 k 个样本到第 k-M+1 个样本的反向序列。
- try: y = np.dot(W[:, k - 2], x):计算滤波器的输出值 y。
- except: pass:如果出现异常则跳过。
- en[k-1] = dn[k-1] - y:计算当前样本的误差值。
- W[:, k-1] = W[:, k - 2] + 2 * mu * en[k-1] * x:更新权值矩阵,利用当前样本的误差值和输入序列的反向序列计算出更新值。其中,2 * mu * en[k-1] 表示步长乘以误差值,x 表示输入序列的反向序列。
- 最后返回 yn,W,en。
import numpy as np import matplotlib.pyplot as plt import math def count(lis): lis = np.array(lis) key = np.unique(lis) x = [] y = [] for k in key: mask = (lis == k) list_new = lis[mask] v = list_new.size x.append(k) y.append(v) return x, y mu = [14, 23, 22] sigma = [2, 3, 4] tips = ['design', 'build', 'test'] figureIndex = 0 fig = plt.figure(figureIndex, figsize=(10, 8)) color = ['r', 'g', 'b'] ax = fig.add_subplot(111) for i in range(3): x = np.linspace(mu[i] - 3*sigma[i], mu[i] + 3*sigma[i], 100) y_sig = np.exp(-(x - mu[i])**2/(2*sigma[i]**2))/(math.sqrt(2*math.pi)) ax.plot = (x, y_sig, color[i] + '-') ax.legend(loc='best', frameon=False) ax.set_xlabel('# of days') ax.set_ylabel('probability') plt.show() plt.grid(True) size = 100000 samples = [np.random.normal(mu[i], sigma[i], size) for i in range(3)] data = np.zeros(len(samples[1])) for i in range(len(samples[1])): for j in range(3): data[i] += samples[j][i] data[i] = int(data[i]) a, b = count(data) pdf = [x/size for x in b] cdf = np.zeros(len(a)) for i in range(len(a)): if i > 0: cdf[i] += cdf[i - 1] cdf = cdf/size figureIndex += 1 fig = plt.figure(figureIndex, figsize=(10, 8)) ax = fig.add_subplot(211) ax.bar(a, height=pdf, color='blue', edgecolor='white', label='MC PDF') ax.plot(a, pdf) ax.legend(loc='best', frameon=False) ax.set_xlabel('# of days for project') ax.set_ylabel('probability') ax.set_title('Monte Carlo Simulation') ax = fig.add_subplot(212) ax.plot(a, cdf) ax.legend(loc='best', frameon=False) ax.set_xlabel('# of days for project') ax.set_ylabel('probability') ax.grid(True) plt.show()修改一下代码
import numpy as np
import matplotlib.pyplot as plt
import math
def count(lis):
lis = np.array(lis)
key = np.unique(lis)
x = []
y = []
for k in key:
mask = (lis == k)
list_new = lis[mask]
v = list_new.size
x.append(k)
y.append(v)
return x, y
mu = [14, 23, 22]
sigma = [2, 3, 4]
tips = ['design', 'build', 'test']
figureIndex = 0
fig = plt.figure(figureIndex, figsize=(10, 8))
color = ['r', 'g', 'b']
ax = fig.add_subplot(111)
for i in range(3):
x = np.linspace(mu[i] - 3*sigma[i], mu[i] + 3*sigma[i], 100)
y_sig = np.exp(-(x - mu[i])**2/(2*sigma[i]**2))/(math.sqrt(2*math.pi))
ax.plot(x, y_sig, color[i] + '-', label=tips[i])
ax.legend(loc='best', frameon=False)
ax.set_xlabel('# of days')
ax.set_ylabel('probability')
plt.grid(True)
plt.show()
size = 100000
samples = [np.random.normal(mu[i], sigma[i], size) for i in range(3)]
data = np.zeros(len(samples[1]))
for i in range(len(samples[1])):
for j in range(3):
data[i] += samples[j][i]
data[i] = int(data[i])
a, b = count(data)
pdf = [x/size for x in b]
cdf = np.zeros(len(a))
for i in range(len(a)):
if i > 0:
cdf[i] += cdf[i - 1]
cdf[i] = pdf[i] + cdf[i]
figureIndex += 1
fig = plt.figure(figureIndex, figsize=(10, 8))
ax = fig.add_subplot(211)
ax.bar(a, height=pdf, color='blue', edgecolor='white', label='MC PDF')
ax.plot(a, pdf)
ax.legend(loc='best', frameon=False)
ax.set_xlabel('# of days for project')
ax.set_ylabel('probability')
ax.set_title('Monte Carlo Simulation')
ax = fig.add_subplot(212)
ax.plot(a, cdf)
ax.legend(loc='best', frameon=False)
ax.set_xlabel('# of days for project')
ax.set_ylabel('probability')
ax.grid(True)
plt.show()