歡迎您光臨本站 註冊首頁

matlab、python中矩陣的互相導入導出方式

←手機掃碼閱讀     niceskyabc @ 2020-06-05 , reply:0

還有一種最流行的h5py.. 過幾天更新

------------在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

  


[niceskyabc ] matlab、python中矩陣的互相導入導出方式已經有237次圍觀

http://coctec.com/docs/python/shhow-post-237082.html