我有两个数组 n 和 k,我想用公式 n + ik 创建一个矩阵。我希望矩阵具有以下形式;
n[0]+ik[0] n[0]+ik[1] n[0]+ik[2] etc.
n[1]+ik[0] n[1]+ik[1] n[0]+ik[2] etc.
etc.
到目前为止我已经;
z = 0 + 1j
for i,j in n
for i,j in k
n_com = n + k*z
但我知道它不起作用,而且我意识到它没有任何意义。我必须使用追加吗?
最佳答案
我认为下面的代码很清楚
n = [1, 2, 3]
k = [4, 5, 6]
mat = []
for i in range(len(n)):
row = [] # ready to make a row
for j in range(len(k)):
row.append(n[i] + 1j * k[j])
mat.append(row) # add the row to the mat
print(mat) # we get it
一种更Pythonic的方式是(如果你有兴趣的话)
mat = [[x + 1j * y for y in k] for x in n]
此外,许多科学人士会使用numpy
,当矩阵很大时,您可能会期望更好的性能和可用性。
import numpy as np
n = np.array(n)
k = np.array(k).reshape((-1, 1))
mat = n + k.repeat(len(n), 1) * 1j
关于python - 我想使用 python 中的加法函数从两个长度为 n 的数组创建一个 nxn 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47335305/