最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python的數據與matlab互通問題:SciPy

 更新時間:2022年12月15日 08:53:40   作者:后廠村路蔡徐坤  
這篇文章主要介紹了python的數據與matlab互通問題SciPy,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

python數據與matlab互通SciPy

有時候需要利用python進行科學計算,但需要Matlab進行交互式畫圖,因此需要掌握python與matlab數據互通的技巧:SciPy

  • SciPy 提供了與 Matlab 的交互的方法。
  • SciPy 的 scipy.io 模塊提供了很多函數來處理 Matlab 的數組。

python利用scipy.io.savemat()存儲日志

參考:https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.savemat.html

(一)語法

scipy.io.savemat(file_name, mdict, appendmat = True, format = '5', long_field_names = False, do_compression = False, oned_as = 'row')
參數
file_name:str
      .mat 文件的名稱(如果沒有擴展名,需要設置appendmat == True)
mdict:dict
      從中保存 matfile 變量的字典。
appendmat:布爾值,可選
      True(默認值)將 .mat 擴展名附加到給定文件名的末尾(如果尚不存在)。
fomat:{'5', '4'},字符串,可選
      '5'(默認值)用于 MATLAB 5 及更高版本(至 7.2),'4' 用于 MATLAB 4 .mat 文件。
long_field_names:布爾型,可選
      False(默認值)- 結構中的最大字段名稱長度為 31 個字符,這是記錄的最大長度。True - 結構中的最大字段名稱長度為 63 個字符,適用于 MATLAB 7.6+。
do_compression:布爾值,可選
      是否在寫入時壓縮矩陣。默認為假。
oned_as :{'row', 'column'},可選
      如果是 'column',則將一維 NumPy 數組寫為列向量。如果為“行”,則將一維 NumPy 數組寫為行向量。

(二)例子

from scipy import io
import numpy as np
arr = np.arange(10)

io.savemat('arr.mat', {"vec": arr})
#如果存入多組數據
io.savemat('saveddata.mat', {'xi': xi,'yi': yi,'ui': ui,'vi': vi})

利用matlab讀取mat日志的方法

(一)載入日志文件

mat_struct=load('C:\Users\XXX\Desktop\task3-2022y01m23d-17h52m.mat');

(二)取出元素

mat_struct=load('C:\Users\XXX\Desktop\task3-2022y01m23d-17h52m.mat');
ans=mat_struct.ans;
select_info=mat_struct.select_info;
select_info_p=mat_struct.select_info_p;
clear mat_struct;

Python數據分析scipy

SciPy是一組專門解決科學計算中各種標準問題域的包的集合,主要包括下面這些包:

  • scipy.integrate:數值積分例程和微分方程求解器
  • scipy.linalg:擴展了由numpy.linalg提供的線性代數例程和矩陣分解功能
  • scipy.optimize:函數優(yōu)化器(最小化器)以及跟查找算法
  • scipy.signal:信號處理工具
  • scipy.sparse:稀疏矩陣和系數線性系統(tǒng)求解器
  • scipy.special:SPECFUN(這是一個實現(xiàn)了許多常用數學函數(如伽馬函數)的Fortran庫)的包裝器
  • scipy.stats:標準連續(xù)和離散概率分布(如密度函數、采樣器、連續(xù)分布函數等)、各種統(tǒng)計檢驗方法,以及更好的描述統(tǒng)計法
  • scipy.weave:利用內聯(lián)C++代碼加速數組計算的工具

定積分scipy.integrate

導入積分模塊:

import numpy as np #導入numpy庫
from scipy import integrate #導入定積分模塊

scipy.integrate.quad(func,a,b):計算單重積分,參數分別為被積函數(f(x))、積分下限、積分上限

res, err = integrate.quad(np.sin, 0, np.pi/2) # 對sin函數在[0,$\pi/2$]區(qū)間上積分,quad函數返回兩個值,第一個為積分結果,第二個為誤差值
print(integrate.quad(lambda x:x**2,0,1)) # 計算x**2的定積分,積分區(qū)間為0到1,并輸出結果

scipy.integrate.dblquad(func,a,b,gfun,hfun):計算雙重積分,參數分別為被積函數(f(y,x))、x的積分下限、x的積分上限、y的積分下限、y的積分上限

print(integrate.dblquad(lambda x,y:x**2+y,0,2,lambda x:0,lambda x:1)) #對x**2+y求定積分,x積分區(qū)間[0,1],y積分區(qū)間[0,2],并輸出結果

scipy.integrate.nquad(func,ranges):計算多重積分,參數分別為被積函數(f(x0,x1,…,xn))、積分區(qū)間(格式為[[a,b],[c,d],[e,f]],依次為x0、x1、x2、的積分區(qū)間)

def f(x,y):
? ? return x**2+y
?
def bound_x():
? ? return [0,1]
?
def bound_y():
? ? return [0,2]
?
print(integrate.nquad(f,[bound_x,bound_y]))

優(yōu)化器scipy.optimize

導入模塊

import numpy as np #導入numpy庫
from scipy import optimize #導入優(yōu)化模塊

scipy.optimize.minimize(func,x0,args=(),method=None,jac=None):計算標量函數的最小值,參數分別為標量函數、初值、、尋優(yōu)方法

尋優(yōu)方法有:

插值scipy.interpolate

導入模塊

import numpy as np #導入numpy庫
from scipy import interpolate #導入interpolate模塊
import matplotlib.pyplot as plt #導入繪圖模塊
x = np.linspace(0, 1, 10) #創(chuàng)建數組,相當于x
y = np.sin(2 * np.pi * x) #相當于y

  

scipy.interpolate.interp1d():1維插值函數

linear_f = interpolate.interp1d(x, y) #線性插值函數
x_new = np.linspace(0, 1, 50) #插值后的x
y_new = linear_f(x_new) #線性插值后的y
cubic_f = interpolate.interp1d(x, y, kind='cubic') #應用插值函數
cubic_y = cubic_f(x_new) #插值后的y值?

展示效果

plt.figure()
plt.plot(x, y, 'o', ms=6, label='x')
plt.plot(x_new, y_new, label='linear interp')
plt.plot(x_new, cubic_y, label='cubic interp')
plt.legend()
plt.show()

線性計算與矩陣分解scipy.linalg

導入模塊

import numpy as np #導入numpy庫
from scipy import linalg as lg #導入scipy庫的linalg模塊
arr=np.array([[1,2],[3,4]]) #創(chuàng)建方陣arr
b=np.array([6,14]) #創(chuàng)建矩陣b

scipy.linalg.det():計算方陣的行列式

print('Det:',lg.det(arr)) #求矩陣arr的行列式

scipy.linalg.inv():計算方陣的逆矩陣

print('Inv:',lg.inv(arr)) #求矩陣arr的逆矩陣

scipy.linalg.eig():計算方陣的特征向量

print('Eig:',lg.eig(arr)) #求矩陣arr的特征向量

scipy.linalg.svd():對矩陣進行奇異值分解

print('SVD:',lg.svd(arr)) #對矩陣arr進行svd分解

scipy.linalg.lu():對矩陣進行LU分解

print('LU:',lg.lu(arr)) #對矩陣arr進行l(wèi)u分解

scipy.linalg.qr():對矩陣進行QR分解

print('QR:',lg.qr(arr)) #對矩陣arr進行qr分解

scipy.linalg.schur():對矩陣進行Schur分解

print('Schur:',lg.schur(arr)) #對矩陣arr進行Schur分解

scipy.linalg.solve():方程組求解

print('Sol:',lg.solve(arr,b)) #求方程組arr*x=b的解

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python中實現(xiàn)字符串類型與字典類型相互轉換的方法

    Python中實現(xiàn)字符串類型與字典類型相互轉換的方法

    這篇文章主要介紹了Python中實現(xiàn)字符串類型與字典類型相互轉換的方法,非常實用,需要的朋友可以參考下
    2014-08-08
  • 基于pyinstaller超級加密操作(加殼和轉c)

    基于pyinstaller超級加密操作(加殼和轉c)

    這篇文章主要介紹了基于pyinstaller超級加密操作 (加殼和轉c),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python利用networkx畫圖繪制Les?Misérables人物關系

    Python利用networkx畫圖繪制Les?Misérables人物關系

    這篇文章主要為大家介紹了Python利用networkx畫圖處理繪制Les?Misérables悲慘世界里的人物關系圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 對python的文件內注釋 help注釋方法

    對python的文件內注釋 help注釋方法

    今天小編就為大家分享一篇對python的文件內注釋 help注釋方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 基于Python實現(xiàn)繪制一個足球

    基于Python實現(xiàn)繪制一個足球

    這篇文章主要為大家詳細介紹了如何基于Python實現(xiàn)繪制一個簡單的足球,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以嘗試一下
    2023-02-02
  • 使用pyinstaller打包PySide2程序中遇到的問題

    使用pyinstaller打包PySide2程序中遇到的問題

    說到打包,我們就需要用到python程序的打包工具pyinstaller了,這個包安裝簡單,使用同樣簡單,下面這篇文章主要給大家介紹了關于使用pyinstaller打包PySide2程序中遇到的問題,需要的朋友可以參考下
    2023-05-05
  • python 實現(xiàn)快速生成連續(xù)、隨機字母列表

    python 實現(xiàn)快速生成連續(xù)、隨機字母列表

    今天小編就為大家分享一篇python 實現(xiàn)快速生成連續(xù)、隨機字母列表,具有很好的價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python光學仿真面向對象光學元件類的實現(xiàn)

    python光學仿真面向對象光學元件類的實現(xiàn)

    這篇文章主要為大家介紹了python光學仿真面向對象光學元件類的實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • python獲取http請求響應頭headers中的數據的示例

    python獲取http請求響應頭headers中的數據的示例

    這篇文章主要介紹了python獲取http請求響應頭headers中的數據,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Python操作Excel之xlsx文件

    Python操作Excel之xlsx文件

    前段時間做一個項目,不得不使用Python直接生成Excel文件,后來隨著需求的變化,還要對已有的Excel文件進行讀取。所以想著記錄下來,這篇文章主要給大家介紹了Python操作Excel之xlsx文件的相關資料,需要的朋友可以參考下。
    2017-03-03

最新評論

改则县| 昌黎县| 扎兰屯市| 织金县| 哈密市| 博乐市| 波密县| 资兴市| 广河县| 邓州市| 玛沁县| 闵行区| 丰顺县| 祥云县| 玉屏| 武义县| 吉隆县| 织金县| 理塘县| 陆良县| 水富县| 南涧| 江口县| 莫力| 无极县| 攀枝花市| 温宿县| 赤壁市| 武穴市| 昌图县| 都江堰市| 宜黄县| 长白| 涟源市| 珲春市| 梁河县| 汾西县| 西乌| 田阳县| 双辽市| 岚皋县|