问题标签 [piecewise]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
483 浏览

lisp - Audacity - 如何设置 Nyquist Prompt 控制速率以匹配音频速率?

我希望使用 Audacity 中的 Nyquist Prompt 插件来构建长度为 2048 个样本的分段线性波形。例如,我可以通过从 2048 个无声(零)样本开始,选择所有样本,然后调用 Nyquist Prompt 来生成一个方脉冲波:

这使用分段线性 (pwl) 函数创建一个波形,该波形从时间 0 开始,级别 1.0,然后线性插值到时间 0.5(选择中途),级别 1.0,然后立即跳到级别 0.0,并继续在 0.0 直到时间 1.0。

这是可行的,但是生成的波形在时间 0.5 处没有尖锐的单样本过渡(阶跃),而是在约 40 个样本上具有 1.0 和 0.0 之间的线性斜坡。在这种情况下这是不可接受的。

这里的转换表明,在 Audacity 中,奈奎斯特插件实际上以远低于音频速率的控制速率运行,因此产生了斜坡。

我实际上希望创建一个比方波更复杂的波形,所以一旦这个问题得到解决,我就可以继续构建完整的波形。

我的问题是:

  • 是否可以调整控制速率以匹配音频采样率,以便我可以对 pwl 功能进行精确采样控制,以及
  • 如何将其合并到也称为“pwl”的 Nyquist Lisp 表达式中 - 我对 Lisp 一点也不熟悉,也不明白如何顺序执行两个语句。我的猜测是有一个功能可以做到这一点......

如果这更有意义的话,我很乐意在 Audacity 之外使用 Nyquist。

0 投票
1 回答
2792 浏览

python - numpy piecewise function claiming lists are not same size

I'm trying to write a function to pass a variable into a piecewise function, I have:

However, when I run trans(a), I get:

ValueError: function list and condition list must be the same

The function and condition list I used are both length 5, so I'm not sure what the issue is

EDIT: Apparently numpy.piecewise expects an array, so I needed to pass it one, instead of a plain variable?

0 投票
2 回答
1410 浏览

c++ - std::piecewise_constant_distribution 和 std::vector 的问题

给定一堆字符串,我正在尝试创建一个程序,该程序可以根据我的输入模拟具有加权分布的伪随机行为。

到目前为止,我想出了这个

但是这个东西不起作用,我不知道为什么,std::piecewise_constant_distribution根据在线示例,它的通常用法是 with std::arrays,但我正在尝试使用它来实现它std::vector,这是我发现的主要区别。

使用 Clang++ 的错误输出是

但我无法理解它,因为.push_back我的代码中没有明确的内容,我也没有从其中得到什么,因为调试模板类是一场噩梦,我只是从这个开始。

任何人都知道为什么代码不起作用?

0 投票
2 回答
6445 浏览

python - Python — 被 numpy 的分段函数弄糊涂了

我正在尝试在 Python 中实现分段函数。由于我使用了很多来自 numpy 的工具,因此我只需从中导入所有内容(即from numpy import *)。我的分段函数定义为

这导致错误NameError: global name 't' is not defined。我不明白我为什么要定义t——毕竟,没有必要t为一个简单的 lambda 函数定义Lin = lambda t : t。在某些示例中,t定义了域,但我不知道函数LinQuad将在哪些值上进行评估。该怎么办?

0 投票
2 回答
188 浏览

matlab - Matlab中的许多步骤picwise函数?

生成分段级别函数的最简单方法是什么,如下所示

在此处输入图像描述

假设,我知道矩阵中每个级别的高度(y 值)和长度(水平)

即第一行表示水平水平,第二行表示水平长度。

另外我想在级别之间进行一些插值。

0 投票
1 回答
952 浏览

python - Numpy 的分段函数

考虑这段代码:

我将所有这些常量都放在那里,这样您就可以复制代码、运行程序并查看输出 - 抱歉,我还没有足够的声望点来在这里发布输出图像。

从 y 轴上的比例和绘图本身,很明显这两个分段函数之间的输出存在差异:为什么?似乎 lambda 函数在这里发挥了作用,但我不明白为什么会这样。任何见解都值得赞赏。

0 投票
1 回答
1012 浏览

r - 如何在 R 中编写分段函数进行一点模拟并将值存储在数据框中

我需要在代码中放入分段函数并将生成的值存储在数据框中。规则如下:

  • 我有一个由伯努利(1/3)生成的对象 X。
  • 如果 X=0,另一个对象 Y 由 E = Exponential(1) 生成。
  • 如果 X=1,如果 E <= P 则由 E 生成 Y,如果 E > P 则由 (P + EL) 生成,其中 P 是一个常数(例如 1),EL = Exponential(Lambda),独立于 E。
  • 我想生成一个数据帧,其中包含使用此方法获得的 100 个 X 和 Y 样本,此外,执行此过程 10000 次(或者换句话说,生成 10000 个数据帧)。

我试图做这样的事情,但由于我是一个使用 R 的新手,我无法弄清楚如何正确定义每个元素,显然,如何将我的结果存储在数据框中。

这是我做的“代码”:

但即使在测试之前,我也知道它不可能正常工作。我只想制作的数据框可能包含 X 和 Y 的值。

我知道这可能是一个非常基本的问题,所以非常感谢您的回答。

0 投票
1 回答
1800 浏览

matlab - MATLAB:使用 ppval 评估分段多项式 (pchip)

我正在尝试在 MATLAB 中进行 pchip 插值。插值工作正常,但是当我使用 ppval 函数检查曲线(用于绘图)时,我收到一条错误消息,我无法弄清楚问题是什么。

我以前以这种方式使用过 pchip 函数:yi = pchip(x,y,xi),效果很好。但是,我现在只想要系数(pp.coefs)。问题是,当我尝试使用 ppval 函数检查它们时,它们似乎没有意义。

这是一个例子:

谁能帮我弄清楚我做错了什么?谢谢!

0 投票
2 回答
3101 浏览

python - 如何在 numpy.piecewise 中指定范围(每个范围 2 个条件)

我正在尝试为某些数字信号处理构建分段函数,但我无法获得 numpy.piecewise 以允许我指定范围。

这是我要输入的内容:

但是,我收到错误:“ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()”

剖析函数后,问题似乎是该函数不允许两个条件合二为一,例如: t < -1 and t>-2

但在我看来,允许指定范围对于许多分段函数来说是必不可少的。有没有办法做到这一点?

谢谢!

0 投票
1 回答
299 浏览

matlab - Matlab绘图点和显示值

我有一个简单的情节问题。

在 x 轴上,值是 K,例如从 2 到 12,离散的。在 y 轴上,值是 C,例如从 1 到 10,离散的。

我的功能是分段的:

K 如果 K<2C; 如果 K>=2C,则 K+2C;

我想显示点(K,C)的值:

(1,1) 显示为 1 (1,2) 显示为 1 (2,1) 显示为 4 (2,2) 显示为 2 等。

我该怎么做?

非常感谢,

卡斯帕