亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python與matlab一些常用函數(shù)互轉(zhuǎn)問題

 更新時間:2022年12月15日 09:21:24   作者:程序媛禿禿  
這篇文章主要介紹了python與matlab一些常用函數(shù)互轉(zhuǎn),包括十六進制字節(jié)流數(shù)據(jù)的相關(guān)知識,本文通過示例代碼給大家講解的非常詳細,需要的朋友可以參考下

1、十六進制字節(jié)流數(shù)據(jù)

有一個二進制文本data如下:

b"\xd0\x01n\x01\xb3\x1b\x07\x05\xee\x06\xcc\xfe\x84\x12\xab\x07~\x08p\x00\x92\x14u\x01\xe4\x12d\xfe9\x08\xb0\x1e\xa6\x02\xb1C?\x18#E\x12\x12\x13^v\x04w\x1d\xe8\x04\x9bf\x1a\x1c\x9b\x0b\xb0\x11\xae%#\x06\xbe\x1f^\x15s.\x92\x10k'`\x0b[ {\x03!\x00 \x1b\xdf(\xec#\xfcH=\x02\x1e\x11!\x07\xba\xedu \xa7\x0e\xdb\x0by\xfb\x91\x05H\x03\xcb\x08\x94\x04\xfd\x13n\xf8\x07\x06d\xfd\xaf\t{\x17\xda$y\x10"

這些數(shù)據(jù)是設(shè)備通過TCP傳上來的,經(jīng)過小端變換的十六進制字節(jié)流數(shù)據(jù)。

可以使用以下文件轉(zhuǎn)換后查看。

方式1:

import struct

def updack_data(data):
    # 十六進制字節(jié)流轉(zhuǎn)十進制
    dec_data = []
    for i in range(0, len(data), 2):
        dec_data.append(struct.unpack("@h", data[i: i + 2])[0])  # 小端
    return dec_data

with open('data', 'rb') as f:
    signal = f.read()
    print(updack_data(signal))

方式2:

import numpy as np
a = b"\xd0\x01n\x01\xb3\x1b\x07\x05\xee\x06\xcc\xfe\x84\x12\xab\x07~\x08p\x00\x92\x14u\x01\xe4\x12d\xfe9\x08\xb0\x1e\xa6\x02\xb1C?\x18#E\x12\x12\x13^v\x04w\x1d\xe8\x04\x9bf\x1a\x1c\x9b\x0b\xb0\x11\xae%#\x06\xbe\x1f^\x15s.\x92\x10k'`\x0b[ {\x03!\x00 \x1b\xdf(\xec#\xfcH=\x02\x1e\x11!\x07\xba\xedu \xa7\x0e\xdb\x0by\xfb\x91\x05H\x03\xcb\x08\x94\x04\xfd\x13n\xf8\x07\x06d\xfd\xaf\t{\x17\xda$y\x10"
print(np.fromstring(a, dtype=np.int16))

輸出:

[464, 366, 7091, 1287, 1774, -308, 4740, 1963, 2174, 112, 5266, 373, 4836, -412, 2105, 7856, 678, 17329, 6207, 17699, 4626, 24083, 1142, 7543, 1256, 26267, 7194, 2971, 4528, 9646, 1571, 8126, 5470, 11891, 4242, 10091, 2912, 8283, 891, 33, 6944, 10463, 9196, 18684, 573, 4382, 1825, -4678, 8309, 3751, 3035, -1159, 1425, 840, 2251, 1172, 5117, -1938, 1543, -668, 2479, 6011, 9434, 4217]

2、fopen與open

打開文件。

matlab打開:

fid=fopen('data','rb');

python打開:

fid = open('data', 'rb')

data是完整的文件名。

3、fread與fromfile

讀取文件。

matlab讀?。?/p>

signal=fread(fid,data_len,'int16');   %列向量

fread它是一個讀取二進制數(shù)據(jù)的函數(shù).第二個參數(shù)指定輸出向量的大小,第三個參數(shù)指定讀取的項的大小/類型.

python讀?。?/p>

import numpy as np

signal = np.fromfile(fid, np.int16)  # 轉(zhuǎn)Int16

fid是一個文件對象,也可以直接打開一個文件名:

import numpy as np

signal = np.fromfile('data', np.int16)  # 轉(zhuǎn)Int16

其中data是一個完整的文件名。

4、reshape

reshape是重塑數(shù)組,比如把一維數(shù)組轉(zhuǎn)多維數(shù)組。

matlab:

signal1=reshape(signal,2,[]);

意思就是把一維的signal轉(zhuǎn)成2行n列數(shù)組。

python:

signal1 = signal.reshape((-1, 2)).T  

-1表示n行,2表示兩列, .T表示轉(zhuǎn)置,即2行n列數(shù)組。

把一維數(shù)組轉(zhuǎn)10行n列:

import numpy as np
phase = np.reshape(signal1[0], (-1, 10)).T

5、filter與lfilter

y = filter(b,a,x) 使用由分子和分母系數(shù) b 和 a 定義的有理傳遞函數(shù)對輸入數(shù)據(jù) x 進行濾波。

matlab:

y=filter(HP,1,phase(1,:));

python:

from scipy.signal import lfilter
y = lfilter(b=HP, a=1, x=phase[0], axis=0) # 濾波

到此這篇關(guān)于python與matlab一些常用函數(shù)互轉(zhuǎn)的文章就介紹到這了,更多相關(guān)python與matlab函數(shù)互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論