在Jupyter Notebook单元格中用init_printing打印多矩阵的问题
解决Jupyter Notebook中仅显示最后一个SymPy矩阵的问题
Jupyter Notebook单元格默认只自动输出最后一行表达式的返回结果,你写的Matrix(L)只是创建了矩阵对象,但没触发输出操作,所以只有最后一行的Matrix(b)会被显示。下面是几种可行的解决方法:
方法一:用display()主动输出每个矩阵
借助IPython的display函数,可以逐个渲染并显示矩阵,这是Jupyter里最推荐的方式:
import numpy as np from sympy import init_printing, Matrix from IPython.display import display # 初始化SymPy的美化打印(必须调用,确保矩阵格式美观) init_printing() L = np.array([[1, 0, 0], [2, 1, 0], [-1, 0.5, -1]]) b = np.array([2, 4, 2]) # 分别输出两个矩阵 display(Matrix(L)) display(Matrix(b))
方法二:将矩阵放在同一个容器中返回
把两个矩阵打包成元组或列表,让单元格最后一行返回这个容器,Jupyter会自动依次显示里面的每个矩阵:
import numpy as np from sympy import init_printing, Matrix init_printing() L = np.array([[1, 0, 0], [2, 1, 0], [-1, 0.5, -1]]) b = np.array([2, 4, 2]) # 用逗号分隔成元组,作为最后一行的返回值 Matrix(L), Matrix(b)
方法三:用pprint()纯文本美化打印
如果不需要富文本渲染,只是要好看的纯文本格式矩阵,可以用SymPy自带的pprint函数:
import numpy as np from sympy import init_printing, Matrix, pprint init_printing() L = np.array([[1, 0, 0], [2, 1, 0], [-1, 0.5, -1]]) b = np.array([2, 4, 2]) pprint(Matrix(L)) pprint(Matrix(b))
内容的提问来源于stack exchange,提问作者Antropolis
相关产品推荐
相关产品推荐

