import numpy as np
import random
x = np.linspace(-3.0,3.0,25)
b = 3; a = -3; n = 24
N = np.matrix(np.zeros(shape=(4,24)));
G = [] #want to save the 2 4by 24 matrices in G
s = []; g = []
Y = []
random.seed(4)
for j in range(0,2):
Y.append(np.random.randint(-6.0,6.0,size=(4,1)))
h = (b-a)/float(n)
s.append(0.5*h*((1+(np.cos((np.pi*(a-Y[j]))/3.0)))))
g.append(0.5*h*(1+(np.cos((np.pi*(b-Y[j]))/3.0))))
for k in range(0,Y[j].shape[0]):
for l in range(1, x.shape[0]-1):
N[k,l] = h*(1 + (np.cos((np.pi*(x[l]-Y[j][k]))/3.0)))
N[k,0] = s[j][k]
N = np.concatenate((N,g[j]),axis=1)
print(N)
请,我需要帮助。当我运行此代码时,它只生成一个4by25矩阵,但假设是2个4by25矩阵。我不知道为什么。我的目标是将2个4by25矩阵存储到变量G中,以便当我调用G [0]时,它产生第一个4by25,而G [1]产生第二个4by25。 Y在这里输出2个4by1库仑向量。
答案 0 :(得分:0)
您的代码应如何将2个矩阵附加到G?您完全错过了那部分。 我并没有真正得到您想要的值,所以我不能告诉您是否正确添加了值,无论如何,您应该添加以下行:
G.append(N)
(我只是假设您要附加N,因为它是唯一的2x24矩阵) 在第一个循环结束之前,结果应类似于:
for j in range(0,2):
Y.append(np.random.randint(-6.0,6.0,size=(4,1)))
h = (b-a)/float(n)
s.append(0.5*h*((1+(np.cos((np.pi*(a-Y[j]))/3.0)))))
g.append(0.5*h*(1+(np.cos((np.pi*(b-Y[j]))/3.0))))
for k in range(0,Y[j].shape[0]):
for l in range(1, x.shape[0]-1):
N[k,l] = h*(1 + (np.cos((np.pi*(x[l]-Y[j][k]))/3.0)))
N[k,0] = s[j][k]
N = np.concatenate((N,g[j]),axis=1)
G.append(N)