for循环,追加数据



我有一个大小为x=(8000,2)的变量x。我想选择每100个位置的值,即(0,99,198,297…),并应用第二个循环,将该值乘以100次,并将其保存在列表中,因此在两个循环结束时,我有一个大小为(8000,2)的变量

功能代码是:

num_data = 8000
x_data = []
x_data.append(np.random.uniform(high=-1, low=1,size=(num_data, 2)))
x_data=np.asarray(x_data)

K= np.random.uniform(high=-1, low=1, size=(2, 2))
ys=[Obs_x0]
for i in range (80):
Obs_x0 = x_data[:,i*99]

traj=[Obs_x0]
for j in range(99):
Obs_x0 = np.matmul(Obs_x0, K)    
traj.append(Obs_x0)

ys.append(traj)

ys=np.asarray(ys)
print(ys.shape)

当我运行它时,ys(7921,)的形状应该是ys(8000,2)。我认为问题在于代码没有从第一个循环中附加Obs_x0

有什么办法吗>

在for循环前将ys留空->ys=[].

第二个循环中的范围错误:range(99)0-98计数。你想要的可能是range(100),它从0-99开始计数。

你的最终代码应该是这样的:
import numpy as np
num_data = 8000
x_data = []
x_data.append(np.random.uniform(high=-1, low=1, size=(num_data, 2)))
x_data = np.asarray(x_data)
print(x_data.shape)
K = np.random.uniform(high=-1, low=1, size=(2, 2))
ys = []
for i in range(80):
Obs_x0 = x_data[:, i * 99]
traj = [Obs_x0]
for j in range(100):
Obs_x0 = np.matmul(Obs_x0, K)
ys.append(Obs_x0)
ys = np.asarray(ys)
print(ys.shape)

相关内容

  • 没有找到相关文章

最新更新