我是靠谱客的博主 苹果萝莉,最近开发中收集的这篇文章主要介绍matlab里建立缓冲区,在numpy中是否有一个Matlab的缓冲区等价物?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我编写了以下例程来处理我需要的用例,但是我还没有实现/测试“underlap”。在

请随时提出改进建议。在def buffer(X, n, p=0, opt=None):

'''Mimic MATLAB routine to generate buffer array

MATLAB docs here: https://se.mathworks.com/help/signal/ref/buffer.html

Parameters

x: ndarray

Signal array

n: int

Number of data segments

p: int

Number of values to overlap

opt: str

Initial condition options. default sets the first `p` values to zero,

while 'nodelay' begins filling the buffer immediately.

Returns

-

result : (n,n) ndarray

Buffer array created from X

'''

import numpy as np

if opt not in [None, 'nodelay']:

raise ValueError('{} not implemented'.format(opt))

i = 0

first_iter = True

while i < len(X):

if first_iter:

if opt == 'nodelay':

# No zeros at array start

result = X[:n]

i = n

else:

# Start with `p` zeros

result = np.hstack([np.zeros(p), X[:n-p]])

i = n-p

# Make 2D array and pivot

result = np.expand_dims(result, axis=0).T

first_iter = False

continue

# Create next column, add `p` results from last col if given

col = X[i:i+(n-p)]

if p != 0:

col = np.hstack([result[:,-1][-p:], col])

i += n-p

# Append zeros if last row and not length `n`

if len(col) < n:

col = np.hstack([col, np.zeros(n-len(col))])

# Combine result with next row

result = np.hstack([result, np.expand_dims(col, axis=0).T])

return result

最后

以上就是苹果萝莉为你收集整理的matlab里建立缓冲区,在numpy中是否有一个Matlab的缓冲区等价物?的全部内容,希望文章能够帮你解决matlab里建立缓冲区,在numpy中是否有一个Matlab的缓冲区等价物?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部