欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python讀寫mat文件操作指南(使用scipy.io)

 更新時(shí)間:2023年06月25日 16:20:55   作者:天河逐月  
Matlab是一個(gè)非常好用的矩陣計(jì)算分析軟件,然而隨著深度學(xué)習(xí)的發(fā)展,Python語言也逐漸成為人們的常用編程語言,這篇文章主要給大家介紹了關(guān)于Python使用scipy.io讀寫mat文件的相關(guān)資料,需要的朋友可以參考下

在matlab中,數(shù)據(jù)可保存為mat文件,使用save和load命令可進(jìn)行讀寫操作。而在Python中,也可以對(duì)mat文件進(jìn)行讀寫。

一、由matlab向Python傳數(shù)據(jù)(Python讀取mat文件)

第一步:使用matlab創(chuàng)建變量并保存至mat文件

使用matlab分別創(chuàng)建數(shù)、數(shù)組、元胞數(shù)組等類型的變量,然后保存到mat文件中。

clear
path = 'D:\temp\mydata.mat';  % 用于存放mat文件的路徑
n = 12;  % 數(shù)
s = 'Hello';  % 字符串
A = [1,2,3,4,5; 6,7,8,9,0];  % 數(shù)組
C = {'str1','str2','str3'; 'str4','str5','str6'};  % 元胞數(shù)組
save(path, 'n', 's', 'A', 'C');  % 保存上述變量

注意存放mat文件的文件夾必須存在,即要事先創(chuàng)建好,否則會(huì)報(bào)錯(cuò)。

保存后,來讀取一下其中的數(shù)據(jù):

可以確定上述變量已保存至mat文件。

第二部,使用Python讀取上述mat文件

使用scipy.io中的loadmat方法對(duì)mat文件進(jìn)行讀取。編輯代碼如下:

from scipy.io import loadmat
 
path = r"D:\temp\mydata.mat"  # mat文件路徑
data = loadmat(path)  # 讀取mat文件
print(data.keys())  # 查看mat文件中包含的變量
 
Out:
dict_keys(['__header__', '__version__', '__globals__', 'A', 'C', 'n', 's'])

可見讀取到的mat文件中包含變量n、s、A、C,與matlab保存的變量一致。

分別讀取這些變量:

from scipy.io import loadmat
 
path = r"D:\temp\mydata.mat"  # mat文件路徑
data = loadmat(path)
n = data['n']  # 數(shù)
s = data['s']  # 字符串
A = data['A']  # 數(shù)組
C = data['C']  # 元胞數(shù)組
 
print(n)
print(s)
print(A)
print(C)

運(yùn)行后顯示結(jié)果如下:

[[12]]
['Hello']
[[1 2 3 4 5]
 [6 7 8 9 0]]
[[array(['str1'], dtype='<U4') array(['str2'], dtype='<U4')
  array(['str3'], dtype='<U4')]
 [array(['str4'], dtype='<U4') array(['str5'], dtype='<U4')
  array(['str6'], dtype='<U4')]]

與matlab創(chuàng)建的內(nèi)容一致,可見mat文件已被成功讀取。

但注意觀察讀取出來的各個(gè)變量的數(shù)據(jù)類型,發(fā)現(xiàn)均為“numpy.ndarray”類型。所以要想使用讀取出來的數(shù)據(jù),需要再次從ndarray中進(jìn)行讀取。

In:
n0 = n[0][0]  # 讀取單個(gè)數(shù)
s0 = s[0]  #讀取字符串
A0 = A[0][2]  # 讀取數(shù)組中第1行第3個(gè)元素
C0 = C[0][1][0]  # 讀取元胞數(shù)組中第1行第2個(gè)元素
print(n0)
print(s0)
print(A0)
print(C0)
Out:
12
Hello
3
str2

這樣就讀取出了指定的數(shù)據(jù)。

二、由Python向matlab傳數(shù)據(jù)(Python寫入mat文件)

第一步:使用Python創(chuàng)建變量并保存至mat文件

使用Python創(chuàng)建數(shù)、字符串、數(shù)組等類型的變量,然后使用scipy.io中的savemat方法在指定的路徑保存mat文件。

from numpy import array
from scipy.io import savemat
 
# 創(chuàng)建變量
path = r"D:\temp\mydata02.mat"  # 路徑
num = 12  #  數(shù)
str = 'abcde'  # 字符串
list = array([1,2,3,4,5])  # 數(shù)組
 
# 構(gòu)造字典,用于保存變量
data = {}
data.update({'num':num})
data.update({'str':str})
data.update({'list':list})
 
# 保存變量到mat文件
savemat(path, data)

注意,Python中的字典(Dictionary)和集合(Set)不能保存。

第二步:使用matlab讀取上述mat文件

打開matlab并讀取該mat文件,如下圖所示:

與Python中創(chuàng)建的內(nèi)容一致,讀取成功。

總結(jié) 

到此這篇關(guān)于Python讀寫mat文件操作的文章就介紹到這了,更多相關(guān)Python讀寫mat文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Jmeter中JSR223設(shè)置變量方式

    Jmeter中JSR223設(shè)置變量方式

    本文主要介紹了JMeter的幾種常用變量設(shè)置方式,特別對(duì)JSR223設(shè)置變量進(jìn)行了詳細(xì)解釋,JSR223是Java規(guī)范請(qǐng)求,可以向Java平臺(tái)增添新的API和服務(wù),JSR223Sampler可以使用JSR223腳本代碼執(zhí)行創(chuàng)建/更新變量所需的示例或一些計(jì)算
    2024-10-10
  • Python?打印不帶括號(hào)的元組的實(shí)現(xiàn)

    Python?打印不帶括號(hào)的元組的實(shí)現(xiàn)

    本文主要介紹了Python?打印不帶括號(hào)的元組,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 利用Python中xlwt模塊操作excel的示例詳解

    利用Python中xlwt模塊操作excel的示例詳解

    在開發(fā)中,我們最常見的數(shù)據(jù)問題之一,就是對(duì)數(shù)據(jù)進(jìn)行導(dǎo)出整理給運(yùn)營(yíng)人員,所以操作excel就顯得重中之重,在python中操作excel可以借助xlwt模塊。感興趣的可以跟隨小編一起學(xué)習(xí)一下這篇文章
    2022-01-01
  • Python 創(chuàng)建子進(jìn)程模塊subprocess詳解

    Python 創(chuàng)建子進(jìn)程模塊subprocess詳解

    這篇文章主要介紹了Python 創(chuàng)建子進(jìn)程模塊subprocess詳解,本文詳細(xì)講解了subprocess模塊的方法、參數(shù)、使用實(shí)例等,需要的朋友可以參考下
    2015-04-04
  • python如何在終端里面顯示一張圖片

    python如何在終端里面顯示一張圖片

    這篇文章主要為大家詳細(xì)介紹了python如何在終端里面顯示一張圖片的方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Python爬蟲實(shí)現(xiàn)爬取下載網(wǎng)站數(shù)據(jù)的幾種方法示例

    Python爬蟲實(shí)現(xiàn)爬取下載網(wǎng)站數(shù)據(jù)的幾種方法示例

    這篇文章主要為大家介紹了Python爬蟲實(shí)現(xiàn)爬取下載網(wǎng)站數(shù)據(jù)的幾種方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • python獲取異常信息exc_info和print_exc的使用

    python獲取異常信息exc_info和print_exc的使用

    python通過sys.exc_info獲取異常信息,通過traceback.print_exc打印堆棧信息,包括錯(cuò)誤類型和錯(cuò)誤位置等信息,本文就來介紹一下具體用法,感興趣的可以了解一下
    2023-12-12
  • Django權(quán)限設(shè)置及驗(yàn)證方式

    Django權(quán)限設(shè)置及驗(yàn)證方式

    這篇文章主要介紹了Django權(quán)限設(shè)置及驗(yàn)證方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python drop方法刪除列之inplace參數(shù)實(shí)例

    Python drop方法刪除列之inplace參數(shù)實(shí)例

    這篇文章主要介紹了Python drop方法刪除列之inplace參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Jupyter notebook在mac:linux上的配置和遠(yuǎn)程訪問的方法

    Jupyter notebook在mac:linux上的配置和遠(yuǎn)程訪問的方法

    今天小編就為大家分享一篇關(guān)于Jupyter notebook在mac:linux上的配置和遠(yuǎn)程訪問的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評(píng)論