小编Kon*_*lph的帖子

时间序列的小波重构

我正在尝试从Morlet的小波变换重建原始时间序列.我在R,包Rwave,功能cwt工作.该函数的结果是包含复数值的n*m(n =周期,m =时间)的矩阵.

为了重建信号,我使用了Torrence&Compo经典文本中的公式(11),但结果与原始信号无关.我特别关注小波变换的实部与尺度之间的划分,这一步骤完全扭曲了结果.另一方面,如果我只是在所有尺度上对实部进行求和,结果与原始时间序列非常相似,但是稍微宽一些值(原始系列范围〜[-0.2,0.5],重建的系列范围〜[-0.4,0.7]).

我想知道是否有人能说出一些实际的程序,公式或算法来重建原始的时间序列.我已经阅读过Torrence和Compo(1998),Farge(1992)和其他书籍的论文,这些都有不同的公式,但没有人真正帮助我.

r time-series wavelet-transform

3
推荐指数
1
解决办法
2255
查看次数

类变量将在基类之后初始化

我希望有一个简单的问题,我无法找到有关初始化“变量”的具体答案。这是有问题的初始化列表:Triangle.cc

Triangle::Triangle(Vector _a, Vector _b, Vector s, Point o)
    : a(_a), b(_b), Shape(o, new RectilinearAnimationStrategy(s, bBoxMaxX(), bBoxMinX(), bBoxMaxY(), bBoxMinY())){}
Run Code Online (Sandbox Code Playgroud)

我知道你必须按照类中定义的顺序初始化变量,但是当你初始化一个对象时,这种情况又如何呢?我需要ab在调用之前显式初始化Shape,以便将正确的值返回给RectilinearAnimationStrategy. 我尝试的一切都给了我

Triangle.h:在构造函数中Triangle::Triangle(Vector, Vector, Vector, Point)
Triangle.h:11:警告:Triangle::b将在
Triangle.cc:9之后初始化:警告:基础Shape
Triangle.cc:9:警告:在这里初始化时

非常感谢任何帮助,谢谢。

当前设置和给出的第一个答案都没有得到该错误,但输出没有考虑ab考虑(在调用 Shape 构造函数时未初始化)

c++ class initializer-list

3
推荐指数
1
解决办法
1万
查看次数

懒惰的评价len(obj)== 1它有多聪明?

python会计算所有项目的长度或只是理解并停止,如果找到第二项?

if len(obj) == 1: ...
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
127
查看次数

空格vs空字符

在C++中,当我们需要打印单个空格时,我们可能会执行以下操作:

cout << ' ';
Run Code Online (Sandbox Code Playgroud)

或者我们甚至可以使用转换后的ASCII代码来表示空间:

cout << static_cast<char>(32); //ASCII code 32 maps to a single space
Run Code Online (Sandbox Code Playgroud)

我意识到,打印空字符也会导致打印一个空格.

cout << static_cast<char>(0); //ASCII code 0 maps to a null character
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:所有C++编译器都是通用的,当我打印时static_cast<char>(0),它总是在显示器中显示为单个空格吗?

如果它是通用的,当我使用文件输出流时它是否适用于文本文件?

c++ null space

3
推荐指数
2
解决办法
1580
查看次数

std :: pair vs Array

我正在创建一个带有键和值的Map.值必须有两个单独的条目.现在我想到的前两个选项
要么就是去

Map< int,array[2] > 
Run Code Online (Sandbox Code Playgroud)

要么

Map < int,pair < float,float > >  
Run Code Online (Sandbox Code Playgroud)

在内存和执行时间方面,这两者中哪一个更好.我个人认为数组会更好,因为我们不需要执行任何搜索功能.我只是计划使用下标访问该位置并更改它们.

c++ arrays std-pair

3
推荐指数
2
解决办法
2294
查看次数

用自定义条件包装 printf

如果某些条件为真,我只想打印 printf。我知道 printf 是一个可变参数函数,但遗憾的是我似乎无法在这里找到任何解释我可以包装它的线程。

基本上我写的代码中的每一个:

printf(" [text and format] ", ... args ...);
Run Code Online (Sandbox Code Playgroud)

我想写一些类似的东西

my_custom_printf(" [text and format] ", ... args ...);
Run Code Online (Sandbox Code Playgroud)

然后是这样实现的:

int my_custom_printf(const char* text_and_format, ... args ...)
{
    if(some_condition)
    {
        printf(text_and_format, ... args...);
    }
}
Run Code Online (Sandbox Code Playgroud)

条件的第一个版本将独立于 args(它将在某个全局变量上),但将来可能会成为需要的条件一个参数。

无论如何,现在我只需要... args ...原型中的语法和my_custom_printf.

我正在使用 GCC,但我不知道哪个 C 标准 - 但我们可以尝试一下。

c customization printf variadic-functions

3
推荐指数
1
解决办法
274
查看次数

检查对象是否为十进制的正确方法

对于int对象,可以这样使用cpython的cimported函数:

%%cython
from decimal import Decimal
from cpython cimport PyLong_Check

val_decimal = Decimal(1)
print(PyLong_Check(val_decimal))
Run Code Online (Sandbox Code Playgroud)
False
Run Code Online (Sandbox Code Playgroud)

但似乎没有对应的功能decimal

另一种方法是这样使用try-except

%%cython
from decimal import Decimal
from cpython cimport PyFloat_Check

cdef bint check(object val):
    if PyFloat_Check(val):
        return False
    try:
        float(val)
        return True
    except:
        return False

val_decimal = Decimal(1.1)
val_float = 1.1    
print (check(val_decimal))
print (check(val_float))
Run Code Online (Sandbox Code Playgroud)
True
False
Run Code Online (Sandbox Code Playgroud)

但这不仅会捕获decimal所有可能转换为的内容float。例如,也check("1.1")返回True(可能也排除了'str',check()但这看起来仅是'替代方法'-无法保证check()现在在上触发decimal)。

那么检查decimalcython 的正确方法是什么?

python types cython

3
推荐指数
1
解决办法
80
查看次数

返回值的“三元逻辑”:foo、bar 或 error

我有两种不同的 JSON 结构可以从中检索特定的对象值,基本上是这样的

{
    "one": {
        "foo": {
            "bar": "baz"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个这样的

{
    "two": {
        "foo": {
            "bar": "qux"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想bar在两种情况下都返回值加上一个额外的返回变量error,以防 case 1  baz- 也没有 case 2  qux- 匹配任何东西(即匹配null)。

仅使用 jq 1.6 有没有一种简单的方法可以做到这一点?

更新: 以下是实际 JSON 文件的片段:

/* manifest.json, variant A */
{
    "browser_specific_settings": {
        "gecko": {
            "id": "{95ad7b39-5d3e-1029-7285-9455bcf665c0}",
            "strict_min_version": "68.0"
        }
    }
}

/* manifest.json, variant B */
{
    "applications": {
        "gecko": {
            "id": "j30D-3YFPUvj9u9izFoPSjlNYZfF22xS@foobar",
            "strict_min_version": "53.0" …
Run Code Online (Sandbox Code Playgroud)

json batch-processing jq

3
推荐指数
1
解决办法
1110
查看次数

用对角线边缘表示数组的Python方法是什么?

我通过使用两个for循环创建了一个具有对角线边缘的数组,但是我想知道是否有一种更简单的方法,例如列表理解:

im_diag = np.zeros((im_size, im_size), dtype=np.int8)

for x in range(im_size):
    for y in range(im_size):
        if x+y >= im_size:
            im_diag[x,y] = 1
Run Code Online (Sandbox Code Playgroud)

python arrays loops numpy list-comprehension

3
推荐指数
1
解决办法
65
查看次数

将方法应用于文字

我熟悉 C#,但完全不熟悉 VB,我想将 C# 示例(在 LINQPad 中)转换为 VB:

if (2 + 2 == 4)
    "True".Dump();
Run Code Online (Sandbox Code Playgroud)

我想出了以下工作 VB 代码:

Dim word = "True"
If 2 + 2 = 4 Then
    word.Dump
End If
Run Code Online (Sandbox Code Playgroud)

现在,为什么我不能只写以下内容呢?

If 2 + 2 = 4 Then
    "True".Dump  ' BC30035 Syntax error
End If
Run Code Online (Sandbox Code Playgroud)

似乎我无法将方法应用于 VB 中的文字,我必须事先将其存储在变量中,但我肯定在这里遗漏了一些东西......不是吗?

PS 字符串周围的括号不起作用。

vb.net linqpad

3
推荐指数
1
解决办法
44
查看次数