将过程显示为方程式

信息处理 数学
2022-02-21 22:41:06

我开发了一种算法,可以计算特定块(在 2D 块内)过零的次数。这是一个例子:

B1 = {  1, 4, 
        -1, -3, 
        0.12, -2.3
     }

答案应该是 3。为此,我要做的是:

  1. 分别找到块内每个元素的符号值(将返回“1”、“-1”、“0”)。

  2. 如果符号值返回 -1,则 count 增加 1。

这将重复,直到没有块,但是,每个块只会产生 1 个值。

我正在寻找一种方法将所有这些过程放到一个方程式中,这样我就可以证明这一点,而不必每次都用书面文本来解释这些过程。这可能吗?

2个回答

如上所述,您的算法不正确。您只是在计算负数的数量,而不是过零的数量。对于您使用的特定数据集 B1,这两个数字是相同的,但通常它们不会相同。

这样做的方法是将每个数字乘以它后面的数字,如果数字是负数,那么你有一个过零。

zeroCrossings = sum((data(1:end-1) .* data(2:end)) < 0);

您还需要添加一些逻辑来处理恰好为零的样本,但希望您现在明白这一点。

如果您通常想将一组随机的“数字”点“转换”为曲线,那么插值技术或曲线拟合可能是一个值得考虑的好方法。

否则,吉姆克莱的答案就足够了。