从矩阵条目中制作直方图?
Making histogram out of matrix entries?
今天我的任务是制作一个直方图来表示 A^n 的运算,其中 A 是一个矩阵,但仅针对矩阵中的特定条目。
例如,假设我有一个行总和为 1 的矩阵。第一项是一些特定的十进制数。但是,如果我将该矩阵提高到 2 次方,则第一个条目会变成其他东西,如果我将该矩阵提高到 3 次方,它会再次发生变化,等等 - 令人作呕,这就是我需要绘制的内容。
现在我的尝试是创建一个空列表,然后使用 for 循环将矩阵乘法产生的条目添加到列表中。但是,它所做的只是将最终矩阵乘法的结果打印到列表中,而不是在每次迭代时打印它的值。
这是我正在谈论的具体代码:
print("The intial probability matrix.")
print(tabulate(matrix))
baseprob = []
for i in range(1000):
matrix_n = numpy.linalg.matrix_power(matrix, s)
baseprob.append(matrix_n.item(0))
print(baseprob)
print("The final probability matrix.")
print(tabulate(matrix_n))
这是完整的代码,以及我得到的输出。
当然只是打印最后的值,你在做同样的操作,matrix^s
,1000次。这 1000 次中的每一次都需要 s
更改。
如果您想计算位置 matrix(0)
中 matrix^i
的所有值,其中 i
是从 1
到 s
的每个值(您的最终权力) 做:
baseprob = []
for i in range(1,s): #changed to do a range 1-s instead of 1000
#must use the loop variable here, not s (s is always the same)
matrix_n = numpy.linalg.matrix_power(matrix, i)
baseprob.append(matrix_n.item(0))
然后 baseprob
将保持 matrix(0)
matrix^1
、matrix^2
等一直到 matrix^s
.
今天我的任务是制作一个直方图来表示 A^n 的运算,其中 A 是一个矩阵,但仅针对矩阵中的特定条目。
例如,假设我有一个行总和为 1 的矩阵。第一项是一些特定的十进制数。但是,如果我将该矩阵提高到 2 次方,则第一个条目会变成其他东西,如果我将该矩阵提高到 3 次方,它会再次发生变化,等等 - 令人作呕,这就是我需要绘制的内容。
现在我的尝试是创建一个空列表,然后使用 for 循环将矩阵乘法产生的条目添加到列表中。但是,它所做的只是将最终矩阵乘法的结果打印到列表中,而不是在每次迭代时打印它的值。
这是我正在谈论的具体代码:
print("The intial probability matrix.")
print(tabulate(matrix))
baseprob = []
for i in range(1000):
matrix_n = numpy.linalg.matrix_power(matrix, s)
baseprob.append(matrix_n.item(0))
print(baseprob)
print("The final probability matrix.")
print(tabulate(matrix_n))
这是完整的代码,以及我得到的输出。
当然只是打印最后的值,你在做同样的操作,matrix^s
,1000次。这 1000 次中的每一次都需要 s
更改。
如果您想计算位置 matrix(0)
中 matrix^i
的所有值,其中 i
是从 1
到 s
的每个值(您的最终权力) 做:
baseprob = []
for i in range(1,s): #changed to do a range 1-s instead of 1000
#must use the loop variable here, not s (s is always the same)
matrix_n = numpy.linalg.matrix_power(matrix, i)
baseprob.append(matrix_n.item(0))
然后 baseprob
将保持 matrix(0)
matrix^1
、matrix^2
等一直到 matrix^s
.