对IO.py完成了修改,注释和运行

This commit is contained in:
Shreya_Gert 2023-11-28 18:15:23 +08:00
parent 5653078f87
commit e004b8822f
3 changed files with 71 additions and 9 deletions

72
IO.py
View File

@ -6,30 +6,92 @@ import scipy.io as sio
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import os
# 通过以下三段代码来保证scipy.io.savemat 函数的正常运行
# 指定要保存的文件路径
file_path = 'data/testpython.mat'
# 获取文件夹路径
folder_path = os.path.dirname(file_path)
# 如果文件夹不存在,则创建它
if not os.path.exists(folder_path):
os.makedirs(folder_path)
# 创建4个变量并赋值
#sio.savemat('data/testpython.mat', {'a': 1, 'b': 5, 'c': 3, 'd': 4})
# 创建了一个变量x并赋予一个矩阵
#sio.savemat('data/testpython2.mat', {'x': [[1, 3, 5, 4], [5, 3, 2, 8]]})
sio.savemat('data/testpython.mat', {'a': 1, 'b': 5, 'c': 3, 'd': 4})
"""
这行代码调用savemat函数来保存数据
'data/testpython.mat':
这是你想要保存文件的路径和文件名这里的例子中,文件会被保存在名为data的文件夹下,文件名为testpython.mat
{'a': 1, 'b': 5, 'c': 3, 'd': 4}:
这是一个Python字典,其中包含了你想要保存到.mat文件中的数据在这个例子中,你有四个键值对,键是'a', 'b', 'c', 'd',相应的值是1, 5, 3, 和4
注意:scipy.io.savemat 函数在保存 MATLAB 格式的 .mat 文件时默认情况下不会自动创建不存在的文件路径如果指定的文件路径不存在函数会引发一个错误
因此需要在使用scipy.io.savemat前确保文件存在
"""
# 创建了一个变量x并赋予一个矩阵
sio.savemat('data/testpython2.mat', {'x': [[1, 3, 5, 4], [5, 3, 2, 8]]})
# 读取“testpython.mat”文件内容并赋值给data变量
data = sio.loadmat('data/testpython.mat')
# 同上
data2 = sio.loadmat('data/testpython2.mat')
# 创建一个内值全为零的数组变量x
x = np.zeros([1, 4])
"""
np.zeros()是NumPy提供的一个函数,用于创建一个包含零值的数组
[1, 4]是传递给np.zeros()函数的参数,它指定了要创建的数组的形状在这个例子中,它是一个包含1行和4列的数组
"""
# 分别对x变量数组内的各值进行赋值
x[0][0] = data['a']
x[0][1] = data['b']
x[0][2] = data['c']
x[0][3] = data['d']
y=data2['x']
print(x,x.dtype,y[0],y[0].dtype)
y = data2['x']
# 打印x及其数据类型以及y矩阵中第一行的内容及其数据类型
print(x, f"x的数据类型为{x.dtype}", y[0], f"y中第一列的数据类型为{y[0].dtype}")
# 初始化一个图形对象,然后可以在该图形上绘制不同的图表或子图。
fig = plt.figure()
# 在fig上创建一个带有三维坐标系的子图
ax = fig.add_subplot(111, projection='3d')
"""
.add_subplot(111, projection='3d')这是在图形对象 fig 中添加一个三维坐标系的子图的操作
111:这个参数表示将图形分割成一个 1x1 的网格并选择网格中的第一个位置这意味着整个图形窗口只包含一个子图占据整个窗口
projection='3d':这个参数指定了子图的投影类型为三维坐标系(3D)这意味着你可以在这个子图中绘制三维图表,例如三维散点图曲面图等
"""
# 设定散点的xyz数据
xs = x
ys = y[0]
zs = y[1]
# 画出对应位置的点
ax.scatter(xs, ys, zs, c='b', marker='o')
# 给xyz轴加上标签
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
# 显示图像
plt.show()
# 释放资源并清除图形
plt.close()

BIN
data/testpython.mat Normal file

Binary file not shown.

BIN
data/testpython2.mat Normal file

Binary file not shown.