loadmat()函数源码如下:
def loadmat(file_name, mdict=None, appendmat=True, **kwargs):variable_names = kwargs.pop('variable_names', None)MR, file_opened = mat_reader_factory(file_name, appendmat, **kwargs)matfile_dict = MR.get_variables(variable_names)if mdict is not None:mdict.update(matfile_dict)else:mdict = matfile_dictif file_opened:MR.mat_stream.close()return mdict
使用示例:
# loadmat()函数用于加载.mat数据文件def testLoadmat(is_plot):""".mat是数据文件。mat数据文件是matlab的数据存储标准格式。mat数据文件是标准的二进制文件.scipy是构建在numpy的基础之上的,它提供了许多的操作numpy的数组的函数。scipy.io包提供了多种功能来解决不同格式的文件的输入和输出作用:loadmat()函数用于加载.mat数据文件参数:file_name: str.mat文件的文件名(当appendmat = True时,不用加.mat后缀),也可以打开类似文件的对象(file-like object)mdict: dict, 可选,插入文件变量的字典appendmat: bool , 可选,若为真则在文件名后添加后缀byte_order: str / None, 可选默认为none。表示从mat文件中猜测的字节顺序,可以是“native”,“=”,“little”,“<”,“>”,“BIG”之一。mat_dtype: bool,可选若为真,则返回与加载到MATLAB中相同的dtype的数组,而不是保存数组的dtype。squeeze_me: bool,可选,判断是否压缩单位矩阵的维数chars_as_string: bool,可选,将char数组转string数组matlab_compatible: bool,可选返回被MATLAB读取的数组(当squeeze_me = false, chars_as_string = false, mat_dtype = true, struct_as_record = true)struct_as_record: bool,可选设置flag来判断加载MATLAB以numpy记录数组还是以原形式numpy数组(dtype为对象)。verify_compressed_data_integrity: bool,可选,MATLAB文件的长度是否已确认。variable_names: None / sequence若为None(默认),则读取文件中的所有变量。否则variable_names将是一个string序列,表示需要从mat文件中读取的变量名。此时读取器将跳过不是这个变量名的序列,一定程度上减少读取时间。返回:mat_dict: dict以变量名为key,数组为values的字典注意:MATLAB 7.3及以上版本需要使用HDF5的库,scipy不支持该类版本mat文件的读取。"""data = sio.loadmat('datasets/data.mat')train_X = data['X'].Ttrain_Y = data['y'].Ttest_X = data['Xval'].Ttest_Y = data['yval'].Tif is_plot:plt.scatter(train_X[0, :], train_X[1, :], c=train_Y, s=40, cmap=plt.cm.Spectral);return train_X, train_Y, test_X, test_Y
如果觉得《loadmat()函数加载.mat数据文件》对你有帮助,请点赞、收藏,并留下你的观点哦!