1、首先打開pycharm軟件,新建一個python文件并導(dǎo)入numpy庫。
創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)綿陽電信機(jī)房機(jī)柜租用報價,主機(jī)托管價格性價比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
2、然后創(chuàng)建矩陣A,這里先創(chuàng)建一個兩行兩列的數(shù)組,在用numpy的mat函數(shù)將數(shù)組轉(zhuǎn)換為矩陣。
3、接著計算矩陣A的逆矩陣,逆矩陣是通過A.I求得。
4、求出了矩陣A的逆矩陣后,用矩陣B乘以這個逆矩陣就是矩陣的除法了,即為矩陣B除以矩陣A的值。
使用sicpy.io即可.sicpy.io提供了兩個函數(shù)loadmat和savemat,非常方便.
以前也有一些開源的庫(pymat和pymat2等)來做這個事,
不過自從有了numpy和scipy以后,這些庫都被拋棄了.
下面是一個簡單的測試程序,具體的函數(shù)用法可以看幫助文檔:
[python] view plaincopy在CODE上查看代碼片派生到我的代碼片
import scipy.io as sio
import matplotlib.pyplot as plt
import numpy as np
#matlab文件名
matfn=u'E:/python/測試程序/162250671_162251656_1244.mat'
data=sio.loadmat(matfn)
plt.close('all')
xi=data['xi']
yi=data['yi']
ui=data['ui']
vi=data['vi']
plt.figure(1)
plt.quiver( xi[::5,::5],yi[::5,::5],ui[::5,::5],vi[::5,::5])
plt.figure(2)
plt.contourf(xi,yi,ui)
plt.show()
sio.savemat('saveddata.mat', {'xi': xi,'yi': yi,'ui': ui,'vi': vi})
題主好. 如果不用 return, 我們可以選擇利用傳遞參數(shù)的引用來『把值送出來』, 但這樣只能針對不變對象, 如字典, 列表, numpy 數(shù)組等等. 例如我們可以用如下代碼修改 numpy 數(shù)組:
mat = numpy.zeros((3,3))
compute_matrix( mat )
我們可以定義函數(shù) compute_matrix 來修改參數(shù) mat 的值, 并在這個函數(shù)結(jié)束后返回, 可以不用 return.
附錄:
python 參數(shù)傳遞 (傳值或傳引用). 這篇博文將 python 中參數(shù)傳遞的情況, 什么時候傳值什么時候傳引用, 解釋地很清楚, 具體地:
如果函數(shù)收到的是一個可變對象(比如字典或者列表)的引用,就能修改對象的原始值--相當(dāng)于通過“傳引用”來傳遞對象。
如果函數(shù)收到的是一個不可變對象(比如數(shù)字、字符或者元組)的引用,就不能直接修改原始對象--相當(dāng)于通過“傳值'來傳遞對象。
一、mat文件
mat數(shù)據(jù)格式是Matlab的數(shù)據(jù)存儲的標(biāo)準(zhǔn)格式。在Matlab中主要使用load()函數(shù)導(dǎo)入一個mat文件,使用save()函數(shù)保存一個mat文件。對于文件
load('data.mat')
save('data_1.mat','A')
其中,'A'表示要保存的內(nèi)容。
二、python中讀取mat文件
在python中可以使用scipy.io中的函數(shù)loadmat()讀取mat文件,函數(shù)savemat保存文件。
1、讀取文件
如上例:
#coding:UTF-8
import scipy.io as scio
dataFile = 'E://data.mat'
data = scio.loadmat(dataFile)
注意,讀取出來的data是字典格式,可以通過函數(shù)type(data)查看。
print type(data)
結(jié)果顯示
type 'dict'
找到mat文件中的矩陣:
print data['A']
結(jié)果顯示
[[ 0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
。。。。。。。。。。。
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
0.36470588 ?0.90196078 ?0.99215686 ?0.99607843 ?0.99215686 ?0.99215686
0.78431373 ?0.0627451 ? 0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
。。。。。。。。。。。。
0.94117647 ?0.22745098 ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.30196078
。。。。。。。
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0.
0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ? ?0. ? ? ? ?]]
格式為:
type 'numpy.ndarray'
即為numpy中的矩陣格式。
2、保存文件
將這里的data['A']矩陣重新保存到一個新的文件dataNew.mat中:
dataNew = 'E://dataNew.mat'
scio.savemat(dataNew, {'A':data['A']})