我有 10 个参数需要初始化。按照约定,它们被命名为 a_true、b_true 等。它们不是列表或数组,而是独立变量。它们需要从长度为 1X10 的数组进行初始化。
我打算做这样的事情,我知道它有其缺点:
param=[34,65,...,234] # Contains initialization values
var=['a','b','c','d','e','f','g','h','i','j']
gvalues=[] # Array intended to contain variable names
k=0
for i in var:
gvalues.append(var[k]+'_true')
k+=1
Run Code Online (Sandbox Code Playgroud)
这会创建一个元素数组,如 a_true、b_true 等。我想将它们作为变量而不是数组的元素,最后使用 param 中的值初始化它们。有什么可能性吗?如果这看起来微不足道,新手很抱歉。
预期输出:
[a_true, b_true, ..., j_true]=[34, 65, ... , 234]
Run Code Online (Sandbox Code Playgroud) 我试图找到数据集(x,y)的高阶导数.x和y是长度为N的1D阵列.
假设我将它们生成为:
xder0=np.linspace(0,10,1000)
yder0=np.sin(xder0)
Run Code Online (Sandbox Code Playgroud)
我定义了导数函数,其中包含2个数组(x,y)并返回(x1,y1),其中y1是在每个索引处计算的导数:(y [i + 1] -y [i])/(x [ I + 1] -x [I]).x1只是x [i + 1]和x [i]的平均值
这是执行它的功能:
def deriv(x,y):
delx =np.zeros((len(x)-1), dtype=np.longdouble)
ydiff=np.zeros((len(x)-1), dtype=np.longdouble)
for i in range(len(x)-1):
delx[i] =(x[i+1]+x[i])/2.0
ydiff[i] =(y[i+1]-y[i])/(x[i+1]-x[i])
return delx, ydiff
Run Code Online (Sandbox Code Playgroud)
现在计算一阶导数,我将此函数称为:
xder1, yder1 = deriv(xder0, yder0)
Run Code Online (Sandbox Code Playgroud)
类似地对于二阶导数,我称这个函数给出一阶导数作为输入:
xder2, yder2 = deriv(xder1, yder1)
Run Code Online (Sandbox Code Playgroud)
它继续:
xder3, yder3 = deriv(xder2, yder2)
xder4, yder4 = deriv(xder3, yder3)
xder5, yder5 = deriv(xder4, yder4)
xder6, yder6 = deriv(xder5, yder5)
xder7, yder7 = deriv(xder6, yder6)
xder8, yder8 = …Run Code Online (Sandbox Code Playgroud) 我有两个函数来创建数组.
double *Array1D (int nx, int dsize) {
double *v;
v = calloc(nx, dsize);
return v;
}
double **Array2D (int ny, int nx, int dsize) {
double **v; int j;
for (j = 0; j < ny; j++)
v[j] = Array1D(nx, dsize);
return v;
}
int i, j;
pn = Array2D (ny, nx, sizeof(double));
for (j = 0; j < ny; j++)
for (i = 0; i < nx; i++)
pn[j][i] = 1.0 + (i + j * nx) * …Run Code Online (Sandbox Code Playgroud)