15.对象的输出

如果直接输出对象名,这个时候输出的是对象在计算机内存中的地址,并且不同的对象,他们的内存地址也不一样。如下图所示:
在这里插入图片描述
但是,如果在类中生成一个toString方法,我们再输出对象,程序会自动调用toString方法。
在这里插入图片描述
接着再输出一次对象名,就会以字符串的形式输出对象的内容。
toString的原理就是把对象里的成员变量拼接成字符串然后等着程序调用输出。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import numpy as np # 定义字典 usefuldata = {0: [], 1: [np.array([15., 15., 75.]), np.array([15., 15., 45.])], 2: [np.array([15., 75., 15.]), np.array([15., 45., 15.])], 3: [np.array([15., 75., 75.]), np.array([15., 45., 75.]), np.array([15., 75., 45.])], 4: [np.array([75., 15., 15.]), np.array([45., 15., 15.])], 5: [np.array([75., 15., 75.]), np.array([75., 15., 45.]), np.array([45., 15., 75.]), np.array([45., 15., 45.])], 6: [np.array([75., 75., 15.]), np.array([75., 45., 15.]), np.array([45., 75., 15.]), np.array([45., 45., 15.])], 7: [np.array([75., 75., 75.]), np.array([75., 45., 75.]), np.array([75., 75., 45.]), np.array([75., 45., 45.]), np.array([45., 75., 75.]), np.array([45., 45., 75.]), np.array([45., 75., 45.]), np.array([45., 45., 45.])]} # 遍历字典 for k, v in usefuldata.items(): if len(v) > 0: # 如果该键对应的值非空 # 将数组转化为numpy数组 v = np.array(v) if len(v) == 1: # 数据点仅有一个的情况 slope = np.array([0, 0, 0]) # 斜率设为0 intercept = v[0] # 截距为数据点本身 else: # 进行一次线性拟合,拟合结果为斜率和截距 slope, intercept = np.polyfit(np.arange(len(v)), v, 1) # 输出拟合结果 print("键{}对应的值{}拟合得到的斜率为{},截距为{}".format(k, v, slope, intercept)) # 计算直线方程 eq = "z = {}x + {}y + ({})".format(slope[0], slope[1], intercept[2]) print("直线方程为:", eq) else: print("键{}对应的值为空".format(k))。使用这个代码获得了方程后,如何将所有的这些方程一次性显示在三维图像中?采用matplotlib.pyplot来实现
05-29
要将所有的方程一次性显示在三维图像中,可以按照以下步骤进行操作: 1. 导入需要的库和模块: ```python import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D ``` 2. 定义字典和线性拟合函数: ```python usefuldata = {0: [], 1: [np.array([15., 15., 75.]), np.array([15., 15., 45.])], 2: [np.array([15., 75., 15.]), np.array([15., 45., 15.])], 3: [np.array([15., 75., 75.]), np.array([15., 45., 75.]), np.array([15., 75., 45.])], 4: [np.array([75., 15., 15.]), np.array([45., 15., 15.])], 5: [np.array([75., 15., 75.]), np.array([75., 15., 45.]), np.array([45., 15., 75.]), np.array([45., 15., 45.])], 6: [np.array([75., 75., 15.]), np.array([75., 45., 15.]), np.array([45., 75., 15.]), np.array([45., 45., 15.])], 7: [np.array([75., 75., 75.]), np.array([75., 45., 75.]), np.array([75., 75., 45.]), np.array([75., 45., 45.]), np.array([45., 75., 75.]), np.array([45., 45., 75.]), np.array([45., 75., 45.]), np.array([45., 45., 45.])]} def linear_fit(x, y): if len(y) == 1: slope = np.array([0, 0, 0]) intercept = y[0] else: slope, intercept = np.polyfit(x, y, 1) eq = "z = {}x + {}y + ({})".format(slope[0], slope[1], intercept[2]) return slope, intercept, eq ``` 3. 遍历字典,进行线性拟合和绘制图像: ```python fig = plt.figure() ax = fig.add_subplot(111, projection='3d') for k, v in usefuldata.items(): if len(v) > 0: v = np.array(v) if len(v) == 1: slope, intercept, eq = linear_fit([], v) else: x = np.arange(len(v)) slope, intercept, eq = linear_fit(x, v) print("键{}对应的值{}拟合得到的斜率为{},截距为{}".format(k, v, slope, intercept)) print("直线方程为:", eq) # 绘制直线 X, Y = np.meshgrid(np.arange(0, 2, 1), np.arange(0, 2, 1)) Z = slope[0] * X + slope[1] * Y + intercept[2] ax.plot_surface(X, Y, Z, alpha=0.2) else: print("键{}对应的值为空".format(k)) # 设置坐标轴标签和图像标题 ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.title("Linear Fitting") # 显示图像 plt.show() ``` 在上面的代码中,我们首先创建一个3D图像对象`ax`。然后遍历字典,对于每个非空键值对,进行线性拟合并计算直线方程。接着,我们使用`plot_surface`函数绘制直线,并将其透明度设置为0.2。最后,我们设置坐标轴标签和图像标题,并使用`show`函数显示图像。 运行上述代码,即可在一个三维坐标系中显示所有的直线方程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值