Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SciPy Matlab 数组


使用 Matlab 数组

我们知道 NumPy 为我们提供了将数据持久化保存为 Python 可读格式的方法。但 SciPy 也为我们提供了与 Matlab 的互操作性。

SciPy 为我们提供了模块 scipy.io,其中包含用于处理 Matlab 数组的函数。


导出 Matlab 格式的数据

savemat() 函数允许我们导出 Matlab 格式的数据。

该方法接受以下参数

  1. filename - 保存数据的文件名。
  2. mdict - 包含数据的字典。
  3. do_compression - 一个布尔值,指定是否压缩结果。默认为 False。

示例

将以下数组导出为变量名“vec”到 mat 文件

from scipy import io
import numpy as np

arr = np.arange(10)

io.savemat('arr.mat', {"vec": arr})

注意:以上示例在您的计算机上保存了一个名为“arr.mat”的文件。

要打开该文件,请查看下面的“从 Matlab 格式导入数据”示例



从 Matlab 格式导入数据

loadmat() 函数允许我们从 Matlab 文件导入数据。

该函数接受一个必需的参数

filename - 保存数据的文件名。

它将返回一个结构化数组,其键为变量名,对应的值为变量值。

示例

从以下 mat 文件导入数组。

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

# 导出
io.savemat('arr.mat', {"vec": arr})

# 导入
mydata = io.loadmat('arr.mat')

print(mydata)

结果

 {
   '__header__': b'MATLAB 5.0 MAT-file Platform: nt, Created on: Tue Sep 22 13:12:32 2020',
   '__version__': '1.0',
   '__globals__': [],
   'vec': array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
 }

自己试试 »

使用变量名“vec”仅显示来自 matlab 数据的数组

示例

...

print(mydata['vec'])

结果

 [[0 1 2 3 4 5 6 7 8 9]]

自己试试 »

注意:我们可以看到该数组最初是 1D 的,但在提取后它增加了一个维度。

为了解决这个问题,我们可以传递一个额外的参数 squeeze_me=True

示例

# 导入
mydata = io.loadmat('arr.mat', squeeze_me=True)

print(mydata['vec'])

结果

 [0 1 2 3 4 5 6 7 8 9]

自己试试 »


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.