您好,登錄后才能下訂單哦!
這篇文章主要講解了matlab、python中如何實現矩陣的互相導入導出,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
還有一種最流行的h6py.. 過幾天更新
------------在python中導出矩陣至matlab------------
如果矩陣是mxn維的。 那么可以用 :
np.savetxt('dev_ivector.csv', dev_ivector, delimiter = ',')
對應matlab讀取為:
dev_ivec = csvread('dev_ivector.csv') ###csv格式其實就內定了結構體
如果矩陣是(n,)這種格式。['aagj' 'aagy' 'aann' ... 'zzgm' 'zzhk' 'zzwn'] 類似這種。那么可以用
f = open('label','w') for x in spk_mean_label: print(x) print(x,file=f) f.close()
對應matlab讀取為:
spk_mean_label = importdata('label')
第二種方法。 例如
import scipy.io scipy.io.savemat('filename', mdict={ 'a':a, 'b':b})
在matlab中只需要
load 'filename';
就導入了a矩陣和b矩陣
python存儲矩陣
import pandas as pd df = pd.DataFrame(a) df.to_csv("score",sep=" ",index = False)
------------在matlab中導出矩陣至python------------
matlab里面得到矩陣后可以直接從工作區變量處保存為.mat文件。
然后在python中執行下面步驟
import scipy.io as sio load_fn = 'plda_bl_score.mat' load_data = sio.loadmat(load_fn) blscores= load_data['PLDA_bl_scores']
然后blscores就是矩陣了。
第二種方法。
假如有倆個矩陣score,score1
save('score.mat','score','score1')
在python中
import scipy.io matlab_data = scipy.io.loadmat('score.mat') score = matlab_data['score'] score1 = matlab_data['score1']
補充知識:python如何輸出矩陣的行數與列數?
對于pyhton里面所導入或者定義的矩陣或者表格數據,想要獲得矩陣的行數和列數有以下方法:
1、利用shape函數輸出矩陣的行和列
x.shape函數可以輸出一個元組(m,n),其中元組的第一個數m表示矩陣的行數,元組的第二個數n為矩陣的列數
具體代碼如下:
import numpy as np x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]]) # 輸出數組的行和列數 print(x.shape) # (4, 3) # 只輸出行數 print(x.shape[0]) # 4 # 只輸出列數 print (x.shape[1]) # 3
2、對于矩陣的行數,也可以使len(x)函數輸出的矩陣長度,也就是所謂的行數。
import numpy as np x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]]) # 輸出數組的行數 print(len(x)) #4
3、使用x.ndim函數可以輸出矩陣維數,即列數
import numpy as np x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]]) # 輸出數組的行數 print(x.ndim) #3
看完上述內容,是不是對matlab、python中如何實現矩陣的互相導入導出有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。