首页 > 解决方案 > 存储二维数组

问题描述

我编写了一个代码来在 for 循环中创建一个二维数组 H。有没有办法将 H 的这些值存储到另一个具有 n 个元素的数组中,以便稍后在我的程序中调用它?我尝试使用a[i] = H但出现错误 ValueError: setting an array element with a sequence.

import numpy as np

tmin = -30.
tmax = 80.
ntime = 400
Deltat = (tmax-tmin)/ntime

t = np.linspace(tmin,tmax,400)

omega0 = 3.5

tau_s_p = 15

tP = 10 
tS = 35

delta_P = 0.5
delta_S = -0.5


omega_P = np.zeros(len(t))
omega_S = np.zeros(len(t))
H_t = np.zeros(len(t))

for n in range(0,len(t)-1):
   
    omega_P[n] = omega0*np.exp((-(t[n]-tP)**2)/(tau_s_p**2))
    omega_S[n] = omega0*np.exp((-(t[n]-tS)**2)/(tau_s_p**2))
    H = np.array([[0, omega_P[n] , 0], [omega_P[n], 2*delta_P, omega_S[n]],[0,omega_S[n],2*(delta_P - delta_S)]])


标签: pythonnumpy

解决方案


您需要逐个元素地复制它们。随着a[i] = H您尝试将整个数组存储在一个元素中。

或者您可以使用模块中的deepcopy功能copyhttps://stackoverflow.com/a/37593181


推荐阅读