创建包含两个块和其余 0 的块图
Create Block Diagram with two Blocks and rest of 0's
我需要制作一个框图,其中我有两个对角线块,所有其他数字为零。我需要它是一个 20x20 矩阵。
我目前所掌握的是
import numpy as np
T = 0.6
B = np.array([[T, np.sqrt(1-T)], [-np.sqrt(1-T), T]])
B_diag = np.kron(np.eye(10,dtype=int),B)
`
它给出了一个 20x20 矩阵,但所有对角线上都有 B。我是编码新手,所以不确定如何执行此操作。感谢您的帮助!
要求输出:
|C1|C2|C3|C4|C5|C6|C7|C8|
|--|--|--|--|--|--|--|--|
|1|2|0|0|0|0|0|0|0|0|0|0|
|3|4|0|0|0|0|0|0|0|0|0|0|
|0|0|1|2|0|0|0|0|0|0|0|0|
|0|0|3|4|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
有 20 行和 20 列,其中 1 = 4 = T,2 = sqrt(T),3 = -sqrt(T)。 C 只是用于堆栈所需的格式。
您只需将 4x4 数组拼接成更大的 20x20 零数组。
import numpy as np
T = 0.6
B = np.array([[T, np.sqrt(1-T)], [-np.sqrt(1-T), T]])
B_diag = np.kron(np.eye(2,dtype=int),B)
M = np.zeros((20,20))
M[:4, :4] = B_diag
print(M)
并且您在第一个 5x5 块中获得了预期的输出
[[ 0.6 0.63245553 0. 0. 0. ]
[-0.63245553 0.6 -0. 0. 0. ]
[ 0. 0. 0.6 0.63245553 0. ]
[-0. 0. -0.63245553 0.6 0. ]
[ 0. 0. 0. 0. 0. ]]
我需要制作一个框图,其中我有两个对角线块,所有其他数字为零。我需要它是一个 20x20 矩阵。
我目前所掌握的是
import numpy as np
T = 0.6
B = np.array([[T, np.sqrt(1-T)], [-np.sqrt(1-T), T]])
B_diag = np.kron(np.eye(10,dtype=int),B)
`
它给出了一个 20x20 矩阵,但所有对角线上都有 B。我是编码新手,所以不确定如何执行此操作。感谢您的帮助!
要求输出:
|C1|C2|C3|C4|C5|C6|C7|C8|
|--|--|--|--|--|--|--|--|
|1|2|0|0|0|0|0|0|0|0|0|0|
|3|4|0|0|0|0|0|0|0|0|0|0|
|0|0|1|2|0|0|0|0|0|0|0|0|
|0|0|3|4|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
|0|0|0|0|0|0|0|0|0|0|0|0|
有 20 行和 20 列,其中 1 = 4 = T,2 = sqrt(T),3 = -sqrt(T)。 C 只是用于堆栈所需的格式。
您只需将 4x4 数组拼接成更大的 20x20 零数组。
import numpy as np
T = 0.6
B = np.array([[T, np.sqrt(1-T)], [-np.sqrt(1-T), T]])
B_diag = np.kron(np.eye(2,dtype=int),B)
M = np.zeros((20,20))
M[:4, :4] = B_diag
print(M)
并且您在第一个 5x5 块中获得了预期的输出
[[ 0.6 0.63245553 0. 0. 0. ]
[-0.63245553 0.6 -0. 0. 0. ]
[ 0. 0. 0.6 0.63245553 0. ]
[-0. 0. -0.63245553 0.6 0. ]
[ 0. 0. 0. 0. 0. ]]