選單
×
   ❮   
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]

自己動手試一試 »


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援